This commit is contained in:
zhutao
2025-11-21 18:21:47 +08:00
parent 9c94ee31fd
commit 5784a0a5d4
32 changed files with 734 additions and 441 deletions

View File

@@ -60,7 +60,15 @@ class RoomWebSocket {
(data) {
//监听事件
final jsonMap = jsonDecode(data);
RoomMessage msg = RoomMessage(RoomEvent.fromStr(jsonMap['action']), jsonMap['data']);
final event = RoomEvent.fromStr(jsonMap['action']);
if (event == null) {
print("未识别的 action: ${jsonMap['action']},消息已忽略");
return; // 直接跳过
} else {
logger.i("接收到事件: ${event.value}");
}
final msg = RoomMessage(event, jsonMap['data']);
_msgController.add(msg);
},
onDone: () {},
@@ -68,10 +76,12 @@ class RoomWebSocket {
logger.e("连接异常断开");
},
);
//自动加入房间
send(RoomCommand.joinRoom);
//心跳
_heartbeatTimer?.cancel();
_heartbeatTimer = Timer.periodic(Duration(seconds: 15), (_) {
logger.i("发送心跳");
send(RoomCommand.ping);
});
} catch (e) {
@@ -84,8 +94,12 @@ class RoomWebSocket {
void send(RoomCommand action, [Map<String, dynamic>? params]) {
final msg = {
"action": action.value,
"data": params,
if (params != null) ...params,
};
if(action != RoomCommand.ping){
logger.i("发送指令:$msg");
}
_socket!.add(jsonEncode(msg));
}
@@ -105,7 +119,7 @@ class RoomWebSocket {
//socket取消
_socket?.close();
// 销毁事件流
_msgController.close();
// _msgController.close();
// 错误重连取消
_reconnectTimer?.cancel();
_reconnectTimer = null;