com.xmobitea.changx.gn-unity 2.0.3 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/Editor/GNServerSettingsEditor.cs +16 -300
  2. package/Runtime/Common/GNArray.cs +387 -302
  3. package/Runtime/Common/GNArray.cs.meta +11 -11
  4. package/Runtime/Common/GNData.cs +61 -48
  5. package/Runtime/Common/GNData.cs.meta +11 -11
  6. package/Runtime/Common/GNHashtable.cs +404 -241
  7. package/Runtime/Common/GNHashtable.cs.meta +11 -11
  8. package/Runtime/Common/IGNData.cs +20 -11
  9. package/Runtime/Common/IGNData.cs.meta +11 -11
  10. package/Runtime/Common.meta +8 -8
  11. package/Runtime/Config/GNServerSettings.cs +136 -92
  12. package/Runtime/Config/GNServerSettings.cs.meta +11 -11
  13. package/Runtime/Config.meta +8 -8
  14. package/Runtime/Constant/Commands.cs +82 -19
  15. package/Runtime/Constant/Commands.cs.meta +11 -11
  16. package/Runtime/Constant/EnumType/FriendStatus.cs +12 -12
  17. package/Runtime/Constant/EnumType/FriendStatus.cs.meta +11 -11
  18. package/Runtime/Constant/EnumType/GoogleLoginType.cs +5 -5
  19. package/Runtime/Constant/EnumType/GoogleLoginType.cs.meta +11 -11
  20. package/Runtime/Constant/EnumType/GroupStatus.cs +7 -7
  21. package/Runtime/Constant/EnumType/GroupStatus.cs.meta +11 -11
  22. package/Runtime/Constant/EnumType/InvalidMemberType.cs +23 -23
  23. package/Runtime/Constant/EnumType/InvalidMemberType.cs.meta +11 -11
  24. package/Runtime/Constant/EnumType/ItemType.cs +5 -5
  25. package/Runtime/Constant/EnumType/ItemType.cs.meta +11 -11
  26. package/Runtime/Constant/EnumType/MatchmakingMemberStatus.cs +6 -6
  27. package/Runtime/Constant/EnumType/MatchmakingMemberStatus.cs.meta +11 -11
  28. package/Runtime/Constant/EnumType/MatchmakingTicketStatus.cs +2 -2
  29. package/Runtime/Constant/EnumType/MatchmakingTicketStatus.cs.meta +11 -11
  30. package/Runtime/Constant/EnumType/OwnerType.cs +3 -2
  31. package/Runtime/Constant/EnumType/OwnerType.cs.meta +11 -11
  32. package/Runtime/Constant/EnumType/PermissionDataItem.cs +10 -10
  33. package/Runtime/Constant/EnumType/PermissionDataItem.cs.meta +11 -11
  34. package/Runtime/Constant/EnumType/PushPlatformType.cs +10 -0
  35. package/Runtime/Constant/EnumType/PushPlatformType.cs.meta +11 -0
  36. package/Runtime/Constant/EnumType/RequestRole.cs +11 -11
  37. package/Runtime/Constant/EnumType/RequestRole.cs.meta +7 -7
  38. package/Runtime/Constant/EnumType/RequestType.cs +20 -19
  39. package/Runtime/Constant/EnumType/RequestType.cs.meta +11 -11
  40. package/Runtime/Constant/EnumType/StoreReceiveType.cs +13 -0
  41. package/Runtime/Constant/EnumType/StoreReceiveType.cs.meta +11 -0
  42. package/Runtime/Constant/EnumType.meta +8 -8
  43. package/Runtime/Constant/ErrorCode/GNErrorCode.cs +53 -48
  44. package/Runtime/Constant/ErrorCode/GNErrorCode.cs.meta +7 -7
  45. package/Runtime/Constant/ErrorCode.meta +8 -8
  46. package/Runtime/Constant/EventCode.cs +43 -16
  47. package/Runtime/Constant/EventCode.cs.meta +11 -11
  48. package/Runtime/Constant/OperationCode.cs +249 -211
  49. package/Runtime/Constant/OperationCode.cs.meta +11 -11
  50. package/Runtime/Constant/ParameterCode/GNParameterCode.cs +614 -466
  51. package/Runtime/Constant/ParameterCode/GNParameterCode.cs.meta +11 -11
  52. package/Runtime/Constant/ParameterCode/ParameterCode.cs +12 -12
  53. package/Runtime/Constant/ParameterCode/ParameterCode.cs.meta +11 -11
  54. package/Runtime/Constant/ParameterCode.meta +8 -8
  55. package/Runtime/Constant/ReturnCode.cs +73 -25
  56. package/Runtime/Constant/ReturnCode.cs.meta +11 -11
  57. package/Runtime/Constant.meta +8 -8
  58. package/Runtime/Entity/DataMember.cs +342 -124
  59. package/Runtime/Entity/DataMember.cs.meta +11 -11
  60. package/Runtime/Entity/GNMetadata.cs +72 -27
  61. package/Runtime/Entity/GNMetadata.cs.meta +11 -11
  62. package/Runtime/Entity/InvalidMember.cs +52 -33
  63. package/Runtime/Entity/InvalidMember.cs.meta +11 -11
  64. package/Runtime/Entity/Models/AuthenticateModels.cs +251 -207
  65. package/Runtime/Entity/Models/AuthenticateModels.cs.meta +11 -11
  66. package/Runtime/Entity/Models/AuthenticateRequestModels.cs +153 -131
  67. package/Runtime/Entity/Models/AuthenticateRequestModels.cs.meta +11 -11
  68. package/Runtime/Entity/Models/AuthenticateResponseModels.cs +61 -51
  69. package/Runtime/Entity/Models/AuthenticateResponseModels.cs.meta +11 -11
  70. package/Runtime/Entity/Models/CharacterPlayerModels.cs +985 -849
  71. package/Runtime/Entity/Models/CharacterPlayerModels.cs.meta +11 -11
  72. package/Runtime/Entity/Models/CharacterPlayerRequestModels.cs +957 -885
  73. package/Runtime/Entity/Models/CharacterPlayerRequestModels.cs.meta +11 -11
  74. package/Runtime/Entity/Models/CharacterPlayerResponseModels.cs +165 -150
  75. package/Runtime/Entity/Models/CharacterPlayerResponseModels.cs.meta +11 -11
  76. package/Runtime/Entity/Models/CloudScriptModels.cs +185 -0
  77. package/Runtime/Entity/Models/CloudScriptModels.cs.meta +11 -0
  78. package/Runtime/Entity/Models/CloudScriptRequestModels.cs +134 -0
  79. package/Runtime/Entity/Models/CloudScriptRequestModels.cs.meta +11 -0
  80. package/Runtime/Entity/Models/CloudScriptResponseModels.cs +34 -0
  81. package/Runtime/Entity/Models/CloudScriptResponseModels.cs.meta +11 -0
  82. package/Runtime/Entity/Models/ContentModels.cs +150 -153
  83. package/Runtime/Entity/Models/ContentModels.cs.meta +11 -11
  84. package/Runtime/Entity/Models/ContentRequestModels.cs +129 -129
  85. package/Runtime/Entity/Models/ContentRequestModels.cs.meta +11 -11
  86. package/Runtime/Entity/Models/ContentResponseModels.cs +24 -24
  87. package/Runtime/Entity/Models/ContentResponseModels.cs.meta +11 -11
  88. package/Runtime/Entity/Models/DashboardModels.cs +1684 -1156
  89. package/Runtime/Entity/Models/DashboardModels.cs.meta +11 -11
  90. package/Runtime/Entity/Models/DashboardRequestModels.cs +220 -147
  91. package/Runtime/Entity/Models/DashboardRequestModels.cs.meta +11 -11
  92. package/Runtime/Entity/Models/DashboardResponseModels.cs +92 -57
  93. package/Runtime/Entity/Models/DashboardResponseModels.cs.meta +11 -11
  94. package/Runtime/Entity/Models/GamePlayerModels.cs +1073 -933
  95. package/Runtime/Entity/Models/GamePlayerModels.cs.meta +11 -11
  96. package/Runtime/Entity/Models/GamePlayerRequestModels.cs +939 -867
  97. package/Runtime/Entity/Models/GamePlayerRequestModels.cs.meta +11 -11
  98. package/Runtime/Entity/Models/GamePlayerResponseModels.cs +162 -147
  99. package/Runtime/Entity/Models/GamePlayerResponseModels.cs.meta +11 -11
  100. package/Runtime/Entity/Models/GenericModels.cs +102 -102
  101. package/Runtime/Entity/Models/GenericModels.cs.meta +11 -11
  102. package/Runtime/Entity/Models/GroupModels.cs +812 -676
  103. package/Runtime/Entity/Models/GroupModels.cs.meta +11 -11
  104. package/Runtime/Entity/Models/GroupRequestModels.cs +741 -669
  105. package/Runtime/Entity/Models/GroupRequestModels.cs.meta +11 -11
  106. package/Runtime/Entity/Models/GroupResponseModels.cs +129 -114
  107. package/Runtime/Entity/Models/GroupResponseModels.cs.meta +11 -11
  108. package/Runtime/Entity/Models/InventoryModels.cs +667 -558
  109. package/Runtime/Entity/Models/InventoryModels.cs.meta +11 -11
  110. package/Runtime/Entity/Models/InventoryRequestModels.cs +626 -579
  111. package/Runtime/Entity/Models/InventoryRequestModels.cs.meta +11 -11
  112. package/Runtime/Entity/Models/InventoryResponseModels.cs +109 -99
  113. package/Runtime/Entity/Models/InventoryResponseModels.cs.meta +11 -11
  114. package/Runtime/Entity/Models/MasterPlayerModels.cs +1882 -1340
  115. package/Runtime/Entity/Models/MasterPlayerModels.cs.meta +11 -11
  116. package/Runtime/Entity/Models/MasterPlayerRequestModels.cs +1643 -1253
  117. package/Runtime/Entity/Models/MasterPlayerRequestModels.cs.meta +11 -11
  118. package/Runtime/Entity/Models/MasterPlayerResponseModels.cs +293 -213
  119. package/Runtime/Entity/Models/MasterPlayerResponseModels.cs.meta +11 -11
  120. package/Runtime/Entity/Models/MultiplayerModels.cs +293 -223
  121. package/Runtime/Entity/Models/MultiplayerModels.cs.meta +11 -11
  122. package/Runtime/Entity/Models/MultiplayerRequestModels.cs +199 -149
  123. package/Runtime/Entity/Models/MultiplayerRequestModels.cs.meta +11 -11
  124. package/Runtime/Entity/Models/MultiplayerResponseModels.cs +59 -49
  125. package/Runtime/Entity/Models/MultiplayerResponseModels.cs.meta +11 -11
  126. package/Runtime/Entity/Models/StoreInventoryModels.cs +514 -323
  127. package/Runtime/Entity/Models/StoreInventoryModels.cs.meta +11 -11
  128. package/Runtime/Entity/Models/StoreInventoryRequestModels.cs +236 -165
  129. package/Runtime/Entity/Models/StoreInventoryRequestModels.cs.meta +11 -11
  130. package/Runtime/Entity/Models/StoreInventoryResponseModels.cs +45 -30
  131. package/Runtime/Entity/Models/StoreInventoryResponseModels.cs.meta +11 -11
  132. package/Runtime/Entity/Models.meta +8 -8
  133. package/Runtime/Entity/OperationEvent.cs +111 -75
  134. package/Runtime/Entity/OperationEvent.cs.meta +11 -11
  135. package/Runtime/Entity/OperationHelper.cs +51 -35
  136. package/Runtime/Entity/OperationHelper.cs.meta +11 -11
  137. package/Runtime/Entity/OperationRequest.cs +142 -99
  138. package/Runtime/Entity/OperationRequest.cs.meta +11 -11
  139. package/Runtime/Entity/OperationResponse.cs +111 -63
  140. package/Runtime/Entity/OperationResponse.cs.meta +11 -11
  141. package/Runtime/Entity/Request/CustomOperationRequest.cs +112 -61
  142. package/Runtime/Entity/Request/CustomOperationRequest.cs.meta +11 -11
  143. package/Runtime/Entity/Request.meta +8 -8
  144. package/Runtime/Entity/Response/CustomOperationResponse.cs +84 -63
  145. package/Runtime/Entity/Response/CustomOperationResponse.cs.meta +11 -11
  146. package/Runtime/Entity/Response.meta +8 -8
  147. package/Runtime/Entity.meta +8 -8
  148. package/Runtime/GNNetwork.cs +501 -182
  149. package/Runtime/GNNetwork.cs.meta +11 -11
  150. package/Runtime/GNNetworkApi.cs +38 -19
  151. package/Runtime/GNNetworkApi.cs.meta +11 -11
  152. package/Runtime/GNNetworkAuthenticateApi.cs +531 -98
  153. package/Runtime/GNNetworkAuthenticateApi.cs.meta +11 -11
  154. package/Runtime/GNNetworkCharacterPlayerApi.cs +1587 -762
  155. package/Runtime/GNNetworkCharacterPlayerApi.cs.meta +11 -11
  156. package/Runtime/GNNetworkCloudScriptApi.cs +181 -0
  157. package/Runtime/GNNetworkCloudScriptApi.cs.meta +11 -0
  158. package/Runtime/GNNetworkContentApi.cs +238 -132
  159. package/Runtime/GNNetworkContentApi.cs.meta +11 -11
  160. package/Runtime/GNNetworkDashboardApi.cs +278 -117
  161. package/Runtime/GNNetworkDashboardApi.cs.meta +11 -11
  162. package/Runtime/GNNetworkGamePlayerApi.cs +1558 -747
  163. package/Runtime/GNNetworkGamePlayerApi.cs.meta +11 -11
  164. package/Runtime/GNNetworkGroupApi.cs +1228 -582
  165. package/Runtime/GNNetworkGroupApi.cs.meta +11 -11
  166. package/Runtime/GNNetworkInventoryApi.cs +1048 -507
  167. package/Runtime/GNNetworkInventoryApi.cs.meta +11 -11
  168. package/Runtime/GNNetworkMasterPlayerApi.cs +2586 -1067
  169. package/Runtime/GNNetworkMasterPlayerApi.cs.meta +11 -11
  170. package/Runtime/GNNetworkMultiplayerApi.cs +328 -147
  171. package/Runtime/GNNetworkMultiplayerApi.cs.meta +11 -11
  172. package/Runtime/GNNetworkStoreInventoryApi.cs +388 -162
  173. package/Runtime/GNNetworkStoreInventoryApi.cs.meta +11 -11
  174. package/Runtime/Helper/CodeHelper.cs +140 -98
  175. package/Runtime/Helper/CodeHelper.cs.meta +11 -11
  176. package/Runtime/Helper/ConverterService.cs +236 -52
  177. package/Runtime/Helper/ConverterService.cs.meta +11 -11
  178. package/Runtime/Helper/ParseGNHelper.cs +451 -451
  179. package/Runtime/Helper/ParseGNHelper.cs.meta +11 -11
  180. package/Runtime/Helper.meta +8 -8
  181. package/Runtime/Logger/GNDebug.cs +92 -49
  182. package/Runtime/Logger/GNDebug.cs.meta +11 -11
  183. package/Runtime/Logger.meta +8 -8
  184. package/Runtime/Networking/AuthenticateStatus.cs +57 -35
  185. package/Runtime/Networking/AuthenticateStatus.cs.meta +11 -11
  186. package/Runtime/Networking/Handler/IServerEventHandler.cs +25 -25
  187. package/Runtime/Networking/Handler/IServerEventHandler.cs.meta +11 -11
  188. package/Runtime/Networking/Handler/OnCharacterPlayerFriendUpdateEventHandler.cs +61 -32
  189. package/Runtime/Networking/Handler/OnCharacterPlayerFriendUpdateEventHandler.cs.meta +11 -11
  190. package/Runtime/Networking/Handler/OnCharacterPlayerGroupUpdateEventHandler.cs +54 -33
  191. package/Runtime/Networking/Handler/OnCharacterPlayerGroupUpdateEventHandler.cs.meta +11 -11
  192. package/Runtime/Networking/Handler/OnGamePlayerFriendUpdateEventHandler.cs +54 -32
  193. package/Runtime/Networking/Handler/OnGamePlayerFriendUpdateEventHandler.cs.meta +11 -11
  194. package/Runtime/Networking/Handler/OnGamePlayerGroupUpdateEventHandler.cs +54 -32
  195. package/Runtime/Networking/Handler/OnGamePlayerGroupUpdateEventHandler.cs.meta +11 -11
  196. package/Runtime/Networking/Handler/OnGroupMemberUpdateEventHandler.cs +48 -29
  197. package/Runtime/Networking/Handler/OnGroupMemberUpdateEventHandler.cs.meta +11 -11
  198. package/Runtime/Networking/Handler/OnGroupMessageUpdateEventHandler.cs +47 -29
  199. package/Runtime/Networking/Handler/OnGroupMessageUpdateEventHandler.cs.meta +11 -11
  200. package/Runtime/Networking/Handler.meta +8 -8
  201. package/Runtime/Networking/Http/HttpPeer.cs +68 -25
  202. package/Runtime/Networking/Http/HttpPeer.cs.meta +11 -11
  203. package/Runtime/Networking/Http/NetworkingHttpPeerBase.cs +65 -25
  204. package/Runtime/Networking/Http/NetworkingHttpPeerBase.cs.meta +11 -11
  205. package/Runtime/Networking/Http/NetworkingPeerHttpClientRequest.cs +513 -486
  206. package/Runtime/Networking/Http/NetworkingPeerHttpClientRequest.cs.meta +11 -11
  207. package/Runtime/Networking/Http/NetworkingPeerHttpRequest.cs +172 -142
  208. package/Runtime/Networking/Http/NetworkingPeerHttpRequest.cs.meta +11 -11
  209. package/Runtime/Networking/Http/NetworkingPeerUnityWebRequest.cs +225 -188
  210. package/Runtime/Networking/Http/NetworkingPeerUnityWebRequest.cs.meta +11 -11
  211. package/Runtime/Networking/Http.meta +8 -8
  212. package/Runtime/Networking/IPeer.cs +41 -19
  213. package/Runtime/Networking/IPeer.cs.meta +11 -11
  214. package/Runtime/Networking/NetworkingPeer.cs +198 -144
  215. package/Runtime/Networking/NetworkingPeer.cs.meta +11 -11
  216. package/Runtime/Networking/NetworkingPeerAPI.cs +20 -21
  217. package/Runtime/Networking/NetworkingPeerAPI.cs.meta +11 -11
  218. package/Runtime/Networking/OperationPending.cs +159 -95
  219. package/Runtime/Networking/OperationPending.cs.meta +11 -11
  220. package/Runtime/Networking/PeerBase.cs +305 -242
  221. package/Runtime/Networking/PeerBase.cs.meta +11 -11
  222. package/Runtime/Networking/Socket/NetworkingPeerSocketV2.cs +222 -185
  223. package/Runtime/Networking/Socket/NetworkingPeerSocketV2.cs.meta +11 -11
  224. package/Runtime/Networking/Socket/NetworkingPeerSocketV3.cs +235 -177
  225. package/Runtime/Networking/Socket/NetworkingPeerSocketV3.cs.meta +11 -11
  226. package/Runtime/Networking/Socket/NetworkingSocketPeerBase.cs +165 -23
  227. package/Runtime/Networking/Socket/NetworkingSocketPeerBase.cs.meta +11 -11
  228. package/Runtime/Networking/Socket/SocketPeer.cs +242 -197
  229. package/Runtime/Networking/Socket/SocketPeer.cs.meta +11 -11
  230. package/Runtime/Networking/Socket.meta +8 -8
  231. package/Runtime/Networking.meta +8 -8
  232. package/Runtime/Unity/ServiceCoroutine.cs +10 -0
  233. package/Runtime/Unity/ServiceCoroutine.cs.meta +11 -0
  234. package/Runtime/Unity/ServiceUpdate.cs +33 -20
  235. package/Runtime/Unity/ServiceUpdate.cs.meta +11 -11
  236. package/Runtime/Unity.meta +8 -8
  237. package/Runtime/XmobiTea.GN.runtime.asmdef +16 -16
  238. package/Runtime/XmobiTea.GN.runtime.asmdef.meta +7 -7
  239. package/package.json +1 -1
@@ -1,185 +1,222 @@
1
- #if UNITY_USING_BEST_HTTP
2
- namespace XmobiTea.GN.Networking.Socket
3
- {
4
- using System;
5
-
6
- using BestHTTP.SocketIO;
7
- using XmobiTea.GN.Entity;
8
- using XmobiTea.GN.Constant;
9
- using XmobiTea.MsgPack;
10
- using XmobiTea.GN.Logger;
11
- using XmobiTea.GN.Common;
12
-
13
- internal class NetworkingPeerSocketV2 : NetworkingSocketPeerBase
14
- {
15
- private SocketManager socketManager;
16
- private bool isConnected;
17
-
18
- internal override bool isWsConnected => this.socketManager != null ? this.socketManager.State == SocketManager.States.Open : false;
19
-
20
- private SupportedSocketIOVersions serverVersion = SupportedSocketIOVersions.v3;
21
-
22
- public void setServerVersion(SupportedSocketIOVersions serverVersion)
23
- {
24
- this.serverVersion = serverVersion;
25
- }
26
-
27
- internal override void sendRequestAuthSocket()
28
- {
29
- base.sendRequestAuthSocket();
30
-
31
- if (!string.IsNullOrEmpty(this.clientId))
32
- this.socketManager.Socket.Emit(Commands.RequestAuthTokenCmd, GNNetwork.getAuthenticateStatus().getAuthToken());
33
- }
34
-
35
- internal override void reInitNewSocket()
36
- {
37
- base.reInitNewSocket();
38
-
39
- if (this.socketManager == null)
40
- {
41
- var uri = new Uri(this.url + "/socket.io/");
42
- this.socketManager = new SocketManager(uri, new SocketOptions()
43
- {
44
- ServerVersion = serverVersion,
45
- Reconnection = true,
46
- ReconnectionDelay = TimeSpan.FromMilliseconds(this.reconnectDelay),
47
- Timeout = TimeSpan.FromMilliseconds(this.pingTimeout),
48
- AutoConnect = false,
49
- ConnectWith = BestHTTP.SocketIO.Transports.TransportTypes.WebSocket
50
- });
51
-
52
- this.socketManager.Socket.On(SocketIOEventTypes.Connect, onConnect);
53
- this.socketManager.Socket.On(SocketIOEventTypes.Disconnect, onDisconnect);
54
- this.socketManager.Socket.On(SocketIOEventTypes.Error, onError);
55
-
56
- this.socketManager.Socket.On(Commands.ResponseCmd_MsgPack, onResponseMsgPack);
57
- this.socketManager.Socket.On(Commands.EventCmd_MsgPack, onEventMsgPack);
58
-
59
- this.socketManager.Socket.On(Commands.ResponseCmd_Json, onResponseJson);
60
- this.socketManager.Socket.On(Commands.EventCmd_Json, onEventJson);
61
- }
62
- }
63
-
64
- private void onResponseMsgPack(Socket socket, Packet packet, object[] args)
65
- {
66
- lock (this.messageLstLock)
67
- {
68
- this.responsePacketLst.Add(new SocketPacket(packet.Attachments[0], true));
69
- }
70
- }
71
-
72
- private void onEventMsgPack(Socket socket, Packet packet, object[] args)
73
- {
74
- lock (this.messageLstLock)
75
- {
76
- this.eventPacketLst.Add(new SocketPacket(packet.Attachments[0], true));
77
- }
78
- }
79
-
80
- private void onResponseJson(Socket socket, Packet packet, object[] args)
81
- {
82
- lock (this.messageLstLock)
83
- {
84
- this.responsePacketLst.Add(new SocketPacket(packet.DecodedArgs[0], false));
85
- }
86
- }
87
-
88
- private void onEventJson(Socket socket, Packet packet, object[] args)
89
- {
90
- lock (this.messageLstLock)
91
- {
92
- this.eventPacketLst.Add(new SocketPacket(packet.DecodedArgs[0], false));
93
- }
94
- }
95
-
96
- private void onConnect(Socket socket, Packet packet, object[] args)
97
- {
98
- GNDebug.log("[GN Socket RECV] HandleOpen " + socket.Id);
99
-
100
- this.clientId = socket.Id;
101
-
102
- this.onConnectHandler();
103
- }
104
-
105
- private void onDisconnect(Socket socket, Packet packet, object[] args)
106
- {
107
- GNDebug.log("[GN Socket RECV] HandleClose ");
108
-
109
- this.clientId = string.Empty;
110
-
111
- this.onDisconnectHandler();
112
- }
113
-
114
- private void onError(Socket socket, Packet packet, object[] args)
115
- {
116
- GNDebug.logError(string.Format("Error: {0}", args[0].ToString()));
117
- }
118
-
119
- internal override void init(string url, int reconnectDelay, float pingInterval, float pingTimeout)
120
- {
121
- base.init(url, reconnectDelay, pingInterval, pingTimeout);
122
- }
123
-
124
- protected override void emit(RequestType requestType, RequestRole requestRole, OperationRequest operationRequest, string authToken, string secretKey, GNHashtable customTags)
125
- {
126
- base.emit(requestType, requestRole, operationRequest, authToken, secretKey, customTags);
127
-
128
- if (this.socketManager == null || this.socketManager.Socket == null)
129
- {
130
- // callback here
131
- return;
132
- }
133
-
134
- if (customTags != null) operationRequest.setParameter(GNParameterCode.CustomTags, customTags);
135
-
136
- var dataSend = OperationHelper.toSocketData(requestType, requestRole, operationRequest);
137
-
138
- if (operationRequest.isEncrypted())
139
- this.socketManager.Socket.Emit(Commands.RequestCmd_MsgPack, MsgPackSerializer.Serialize(dataSend));
140
- else
141
- this.socketManager.Socket.Emit(Commands.RequestCmd_Json, dataSend);
142
- }
143
-
144
- internal override void close(Action _onSocketDisconnect)
145
- {
146
- base.close(_onSocketDisconnect);
147
-
148
- this.isConnected = false;
149
-
150
- if (this.socketManager != null)
151
- {
152
- if (this.socketManager.State != SocketManager.States.Closed)
153
- {
154
- this.socketManager.Close();
155
- return;
156
- }
157
- }
158
-
159
- GNDebug.log("[GN Socket] Disconnecting via SocketIOv2 BestHTTP 2");
160
-
161
- onDisconnectHandler();
162
- }
163
-
164
- internal override void connect(Action _onSocketConnect)
165
- {
166
- base.connect(_onSocketConnect);
167
-
168
- if (this.isConnected)
169
- {
170
- GNDebug.log("[GN Socket] Reconnecting");
171
-
172
- return;
173
- }
174
-
175
- this.isConnected = true;
176
-
177
- GNDebug.log("[GN Socket] Connecting via SocketIOv2 BestHTTP 2");
178
-
179
- if (this.socketManager != null) this.socketManager.Open();
180
- }
181
-
182
- }
183
-
184
- }
185
- #endif
1
+ namespace XmobiTea.GN.Networking.Socket
2
+ {
3
+ #if UNITY_USING_BEST_HTTP
4
+
5
+ using BestHTTP.SocketIO;
6
+ using System;
7
+ using XmobiTea.GN.Common;
8
+ using XmobiTea.GN.Constant;
9
+ using XmobiTea.GN.Entity;
10
+ using XmobiTea.GN.Logger;
11
+ using XmobiTea.MsgPack;
12
+
13
+ /// <summary>
14
+ /// Handles socket networking using BestHTTP Socket.IO v2.
15
+ /// </summary>
16
+ internal class NetworkingPeerSocketV2 : NetworkingSocketPeerBase
17
+ {
18
+ private SocketManager socketManager;
19
+ private bool isConnected;
20
+
21
+ /// <summary>
22
+ /// Gets whether the WebSocket connection is open.
23
+ /// </summary>
24
+ internal override bool isWsConnected => this.socketManager != null ? this.socketManager.State == SocketManager.States.Open : false;
25
+
26
+ private SupportedSocketIOVersions serverVersion = SupportedSocketIOVersions.v3;
27
+
28
+ /// <summary>
29
+ /// Sets the Socket.IO server version.
30
+ /// </summary>
31
+ /// <param name="serverVersion">The server version to use.</param>
32
+ public void setServerVersion(SupportedSocketIOVersions serverVersion)
33
+ {
34
+ this.serverVersion = serverVersion;
35
+ }
36
+
37
+ /// <summary>
38
+ /// Sends an authentication request via the socket.
39
+ /// </summary>
40
+ internal override void sendRequestAuthSocket()
41
+ {
42
+ base.sendRequestAuthSocket();
43
+
44
+ if (!string.IsNullOrEmpty(this.clientId))
45
+ this.socketManager.Socket.Emit(Commands.RequestAuthTokenCmd, GNNetwork.getAuthenticateStatus().getAuthToken());
46
+ }
47
+
48
+ /// <summary>
49
+ /// Reinitializes the socket with a new configuration.
50
+ /// </summary>
51
+ internal override void reInitNewSocket()
52
+ {
53
+ base.reInitNewSocket();
54
+
55
+ if (this.socketManager == null)
56
+ {
57
+ var uri = new Uri(this.url + "/socket.io/");
58
+ this.socketManager = new SocketManager(uri, new SocketOptions()
59
+ {
60
+ ServerVersion = this.serverVersion,
61
+ Reconnection = true,
62
+ ReconnectionDelay = TimeSpan.FromMilliseconds(this.reconnectDelay),
63
+ Timeout = TimeSpan.FromMilliseconds(this.pingTimeout),
64
+ AutoConnect = false,
65
+ ConnectWith = BestHTTP.SocketIO.Transports.TransportTypes.WebSocket
66
+ });
67
+
68
+ this.socketManager.Socket.On(SocketIOEventTypes.Connect, this.onConnect);
69
+ this.socketManager.Socket.On(SocketIOEventTypes.Disconnect, this.onDisconnect);
70
+ this.socketManager.Socket.On(SocketIOEventTypes.Error, this.onError);
71
+
72
+ this.socketManager.Socket.On(Commands.ResponseCmd_MsgPack, this.onResponseMsgPack);
73
+ this.socketManager.Socket.On(Commands.EventCmd_MsgPack, this.onEventMsgPack);
74
+
75
+ this.socketManager.Socket.On(Commands.ResponseCmd_Json, this.onResponseJson);
76
+ this.socketManager.Socket.On(Commands.EventCmd_Json, this.onEventJson);
77
+ }
78
+ }
79
+
80
+ private void onResponseMsgPack(Socket socket, Packet packet, object[] args)
81
+ {
82
+ lock (this.messageLstLock)
83
+ {
84
+ this.responsePacketLst.Add(new SocketPacket(packet.Attachments[0], true));
85
+ }
86
+ }
87
+
88
+ private void onEventMsgPack(Socket socket, Packet packet, object[] args)
89
+ {
90
+ lock (this.messageLstLock)
91
+ {
92
+ this.eventPacketLst.Add(new SocketPacket(packet.Attachments[0], true));
93
+ }
94
+ }
95
+
96
+ private void onResponseJson(Socket socket, Packet packet, object[] args)
97
+ {
98
+ lock (this.messageLstLock)
99
+ {
100
+ this.responsePacketLst.Add(new SocketPacket(packet.DecodedArgs[0], false));
101
+ }
102
+ }
103
+
104
+ private void onEventJson(Socket socket, Packet packet, object[] args)
105
+ {
106
+ lock (this.messageLstLock)
107
+ {
108
+ this.eventPacketLst.Add(new SocketPacket(packet.DecodedArgs[0], false));
109
+ }
110
+ }
111
+
112
+ private void onConnect(Socket socket, Packet packet, object[] args)
113
+ {
114
+ GNDebug.log("[GN Socket RECV] HandleOpen " + socket.Id);
115
+
116
+ this.clientId = socket.Id;
117
+
118
+ this.onConnectHandler();
119
+ }
120
+
121
+ private void onDisconnect(Socket socket, Packet packet, object[] args)
122
+ {
123
+ GNDebug.log("[GN Socket RECV] HandleClose ");
124
+
125
+ this.clientId = string.Empty;
126
+
127
+ this.onDisconnectHandler();
128
+ }
129
+
130
+ private void onError(Socket socket, Packet packet, object[] args)
131
+ {
132
+ GNDebug.logError(string.Format("Error: {0}", args[0].ToString()));
133
+ }
134
+
135
+ /// <summary>
136
+ /// Initializes the socket with the given configuration.
137
+ /// </summary>
138
+ /// <param name="url">The server URL.</param>
139
+ /// <param name="reconnectDelay">Delay in milliseconds before attempting to reconnect.</param>
140
+ /// <param name="pingInterval">Ping interval in seconds.</param>
141
+ /// <param name="pingTimeout">Ping timeout in seconds.</param>
142
+ internal override void init(string url, int reconnectDelay, float pingInterval, float pingTimeout)
143
+ {
144
+ base.init(url, reconnectDelay, pingInterval, pingTimeout);
145
+ }
146
+
147
+ /// <summary>
148
+ /// Emits a request via the socket.
149
+ /// </summary>
150
+ /// <param name="requestType">The type of request to emit.</param>
151
+ /// <param name="requestRole">The role associated with the request.</param>
152
+ /// <param name="operationRequest">The operation request data.</param>
153
+ /// <param name="authToken">Authentication token, if available.</param>
154
+ /// <param name="secretKey">Secret key, if available.</param>
155
+ /// <param name="customTags">Custom tags for the request.</param>
156
+ protected override void emit(RequestType requestType, RequestRole requestRole, OperationRequest operationRequest, string authToken, string secretKey, GNHashtable customTags, string gameId)
157
+ {
158
+ base.emit(requestType, requestRole, operationRequest, authToken, secretKey, customTags, gameId);
159
+
160
+ if (this.socketManager == null || this.socketManager.Socket == null)
161
+ {
162
+ return;
163
+ }
164
+
165
+ if (customTags != null) operationRequest.setParameter(GNParameterCode.CustomTags, customTags);
166
+
167
+ var dataSend = OperationHelper.toSocketData(requestType, requestRole, operationRequest);
168
+
169
+ if (operationRequest.isEncrypted())
170
+ this.socketManager.Socket.Emit(Commands.RequestCmd_MsgPack, MsgPackSerializer.Serialize(dataSend));
171
+ else
172
+ this.socketManager.Socket.Emit(Commands.RequestCmd_Json, dataSend);
173
+ }
174
+
175
+ /// <summary>
176
+ /// Closes the socket connection.
177
+ /// </summary>
178
+ /// <param name="_onSocketDisconnect">Callback for when the socket is disconnected.</param>
179
+ internal override void close(Action _onSocketDisconnect)
180
+ {
181
+ base.close(_onSocketDisconnect);
182
+
183
+ this.isConnected = false;
184
+
185
+ if (this.socketManager != null)
186
+ {
187
+ if (this.socketManager.State != SocketManager.States.Closed)
188
+ {
189
+ this.socketManager.Close();
190
+ return;
191
+ }
192
+ }
193
+
194
+ GNDebug.log("[GN Socket] Disconnecting via SocketIOv2 BestHTTP 2");
195
+
196
+ this.onDisconnectHandler();
197
+ }
198
+
199
+ /// <summary>
200
+ /// Opens a socket connection.
201
+ /// </summary>
202
+ /// <param name="_onSocketConnect">Callback for when the socket is connected.</param>
203
+ internal override void connect(Action _onSocketConnect)
204
+ {
205
+ base.connect(_onSocketConnect);
206
+
207
+ if (this.isConnected)
208
+ {
209
+ GNDebug.log("[GN Socket] Reconnecting");
210
+ return;
211
+ }
212
+
213
+ this.isConnected = true;
214
+
215
+ GNDebug.log("[GN Socket] Connecting via SocketIOv2 BestHTTP 2");
216
+
217
+ if (this.socketManager != null) this.socketManager.Open();
218
+ }
219
+ }
220
+
221
+ #endif
222
+ }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: 65c2e705603a61748a4b0767c71d3f18
3
- MonoImporter:
4
- externalObjects: {}
5
- serializedVersion: 2
6
- defaultReferences: []
7
- executionOrder: 0
8
- icon: {instanceID: 0}
9
- userData:
10
- assetBundleName:
11
- assetBundleVariant:
1
+ fileFormatVersion: 2
2
+ guid: 65c2e705603a61748a4b0767c71d3f18
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant: