vpn_message.dart 850 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // 消息类型
  2. import 'dart:convert';
  3. class VpnMessageType {
  4. VpnMessageType._();
  5. static const int login = 1;
  6. static const int heartbeat = 2;
  7. static const int stateSync = 3;
  8. }
  9. // VPN 消息
  10. class VpnMessage {
  11. final int type;
  12. final Map<String, dynamic>? data;
  13. VpnMessage(this.type, this.data);
  14. factory VpnMessage.create(int type, Map<String, dynamic>? data) {
  15. return VpnMessage(type, data);
  16. }
  17. Map<String, dynamic> toMap() {
  18. return <String, dynamic>{
  19. 'msg_type': type,
  20. 'data': data,
  21. };
  22. }
  23. factory VpnMessage.fromMap(Map<String, dynamic> map) {
  24. return VpnMessage(
  25. map['msg_type'] ?? 0,
  26. map['data'],
  27. );
  28. }
  29. String toJson() => json.encode(toMap());
  30. factory VpnMessage.fromJson(String source) {
  31. return VpnMessage.fromMap(json.decode(source) as Map<String, dynamic>);
  32. }
  33. }