// 消息类型 import 'dart:convert'; class VpnMessageType { VpnMessageType._(); static const int login = 1; static const int heartbeat = 2; static const int stateSync = 3; } // VPN 消息 class VpnMessage { final int type; final Map? data; VpnMessage(this.type, this.data); factory VpnMessage.create(int type, Map? data) { return VpnMessage(type, data); } Map toMap() { return { 'msg_type': type, 'data': data, }; } factory VpnMessage.fromMap(Map map) { return VpnMessage( map['msg_type'] ?? 0, map['data'], ); } String toJson() => json.encode(toMap()); factory VpnMessage.fromJson(String source) { return VpnMessage.fromMap(json.decode(source) as Map); } }