测试
This commit is contained in:
@@ -2,18 +2,11 @@
|
||||
* WebSocket管理
|
||||
* 管理WebSocket连接,处理WebSocket事件
|
||||
*/
|
||||
import { RenderStreaming } from "../../module/renderstreaming.js"; // WebRTC连接管理
|
||||
|
||||
class WebSocketManager {
|
||||
constructor(url = null) {
|
||||
this.url = url || this.getDefaultWebSocketUrl();
|
||||
this.socket = null;
|
||||
constructor() {
|
||||
this.isConnected = false;
|
||||
this.listeners = new Map();
|
||||
this.reconnectAttempts = 0;
|
||||
this.maxReconnectAttempts = 5;
|
||||
this.reconnectDelay = 1000;
|
||||
this.connectionId = null;
|
||||
this.heartbeatInterval = null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -28,36 +21,33 @@ class WebSocketManager {
|
||||
/**
|
||||
* 连接WebSocket
|
||||
*/
|
||||
connect() {
|
||||
init() {
|
||||
try {
|
||||
this.socket = new WebSocket(this.url);
|
||||
|
||||
this.socket.onopen = () => {
|
||||
RenderStreaming.onConnect = () => {
|
||||
console.log('WebSocket connected');
|
||||
this.isConnected = true;
|
||||
this.reconnectAttempts = 0;
|
||||
|
||||
// 生成连接ID
|
||||
this.connectionId = this.generateConnectionId();
|
||||
|
||||
// 发送连接消息
|
||||
this.sendConnectMessage();
|
||||
|
||||
// 启动心跳
|
||||
this.startHeartbeat();
|
||||
// // 发送连接消息
|
||||
// this.sendConnectMessage();
|
||||
|
||||
this.emit('connect');
|
||||
// // 启动心跳
|
||||
this.startHeartbeat();
|
||||
|
||||
// this.emit('connect');
|
||||
};
|
||||
|
||||
this.socket.onclose = () => {
|
||||
RenderStreaming.onDisconnect = () => {
|
||||
console.log('WebSocket disconnected');
|
||||
this.isConnected = false;
|
||||
this.stopHeartbeat();
|
||||
this.emit('disconnect');
|
||||
this.attemptReconnect();
|
||||
//this.emit('disconnect');
|
||||
//this.attemptReconnect();
|
||||
};
|
||||
|
||||
this.socket.onmessage = (event) => {
|
||||
RenderStreaming.onmessage = (event) => {
|
||||
try {
|
||||
const message = JSON.parse(event.data);
|
||||
this.handleMessage(message);
|
||||
@@ -126,6 +116,7 @@ class WebSocketManager {
|
||||
*/
|
||||
handleMessage(message) {
|
||||
if (message.type) {
|
||||
console.log('Received message:', message);
|
||||
switch (message.type) {
|
||||
case 'user-joined':
|
||||
this.emit('user-joined', message.data);
|
||||
@@ -165,6 +156,9 @@ class WebSocketManager {
|
||||
case 'candidate':
|
||||
this.emit('candidate', message.data);
|
||||
break;
|
||||
case 'chat-message':
|
||||
this.emit('chat-message', message.data);
|
||||
break;
|
||||
default:
|
||||
// 处理旧格式消息
|
||||
if (message.event) {
|
||||
|
||||
Reference in New Issue
Block a user