1
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user