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,177 +1,235 @@
1
- #if UNITY_USING_BEST_HTTP
2
- namespace XmobiTea.GN.Networking.Socket
3
- {
4
- using System;
5
-
6
- using BestHTTP.SocketIO3;
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 NetworkingPeerSocketV3 : 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
- internal override void sendRequestAuthSocket()
21
- {
22
- base.sendRequestAuthSocket();
23
-
24
- if (!string.IsNullOrEmpty(this.clientId))
25
- this.socketManager.Socket.Emit(Commands.RequestAuthTokenCmd, GNNetwork.getAuthenticateStatus().getAuthToken());
26
- }
27
-
28
- internal override void reInitNewSocket()
29
- {
30
- base.reInitNewSocket();
31
-
32
- if (this.socketManager == null)
33
- {
34
- var uri = new Uri(this.url + "/socket.io/");
35
- this.socketManager = new SocketManager(uri, new SocketOptions()
36
- {
37
- Reconnection = true,
38
- ReconnectionDelay = new TimeSpan(0, 0, this.reconnectDelay),
39
- Timeout = new TimeSpan(0, 0, (int)this.pingTimeout),
40
- AutoConnect = false,
41
- ConnectWith = BestHTTP.SocketIO3.Transports.TransportTypes.WebSocket
42
- });
43
-
44
- this.socketManager.Socket.On(SocketIOEventTypes.Connect, this.onConnect);
45
- this.socketManager.Socket.On(SocketIOEventTypes.Disconnect, this.onDisconnect);
46
- this.socketManager.Socket.On(SocketIOEventTypes.Error, this.onError);
47
-
48
- this.socketManager.Socket.On<byte[]>(Commands.ResponseCmd_MsgPack, this.onResponseMsgPack);
49
- this.socketManager.Socket.On<byte[]>(Commands.EventCmd_MsgPack, this.onEventMsgPack);
50
-
51
- this.socketManager.Socket.On<object[]>(Commands.ResponseCmd_Json, this.onResponseJson);
52
- this.socketManager.Socket.On<object[]>(Commands.EventCmd_Json, this.onEventJson);
53
- }
54
- }
55
-
56
- private void onError()
57
- {
58
- GNDebug.log("[GN Socket RECV] Handle Error ");
59
- }
60
-
61
- private void onResponseMsgPack(byte[] responseData)
62
- {
63
- lock (this.messageLstLock)
64
- {
65
- this.responsePacketLst.Add(new SocketPacket(responseData, true));
66
- }
67
- }
68
-
69
- private void onEventMsgPack(byte[] eventData)
70
- {
71
- lock (this.messageLstLock)
72
- {
73
- this.eventPacketLst.Add(new SocketPacket(eventData, true));
74
- }
75
- }
76
-
77
- private void onResponseJson(object[] responseData)
78
- {
79
- lock (this.messageLstLock)
80
- {
81
- this.responsePacketLst.Add(new SocketPacket(responseData, false));
82
- }
83
- }
84
-
85
- private void onEventJson(object[] eventData)
86
- {
87
- lock (this.messageLstLock)
88
- {
89
- this.eventPacketLst.Add(new SocketPacket(eventData, false));
90
- }
91
- }
92
-
93
- private void onDisconnect()
94
- {
95
- GNDebug.log("[GN Socket RECV] HandleClose ");
96
-
97
- this.clientId = string.Empty;
98
-
99
- this.onDisconnectHandler();
100
- }
101
-
102
- private void onConnect()
103
- {
104
- GNDebug.log("[GN Socket RECV] HandleOpen " + this.socketManager.Socket.Id);
105
-
106
- this.clientId = this.socketManager.Socket.Id;
107
-
108
- this.onConnectHandler();
109
- }
110
-
111
- internal override void init(string url, int reconnectDelay, float pingInterval, float pingTimeout)
112
- {
113
- base.init(url, reconnectDelay, pingInterval, pingTimeout);
114
- }
115
-
116
- protected override void emit(RequestType requestType, RequestRole requestRole, OperationRequest operationRequest, string authToken, string secretKey, GNHashtable customTags)
117
- {
118
- base.emit(requestType, requestRole, operationRequest, authToken, secretKey, customTags);
119
-
120
- if (this.socketManager == null || this.socketManager.Socket == null)
121
- {
122
- // callback here
123
- return;
124
- }
125
-
126
- if (customTags != null) operationRequest.setParameter(GNParameterCode.CustomTags, customTags);
127
-
128
- var dataSend = OperationHelper.toSocketData(requestType, requestRole, operationRequest);
129
-
130
- if (operationRequest.isEncrypted())
131
- this.socketManager.Socket.Emit(Commands.RequestCmd_MsgPack, MsgPackSerializer.Serialize(dataSend));
132
- else
133
- this.socketManager.Socket.Emit(Commands.RequestCmd_Json, dataSend);
134
- }
135
-
136
- internal override void close(Action _onSocketDisconnect)
137
- {
138
- base.close(_onSocketDisconnect);
139
-
140
- this.isConnected = false;
141
-
142
- if (this.socketManager != null)
143
- {
144
- if (this.socketManager.State != SocketManager.States.Closed)
145
- {
146
- this.socketManager.Close();
147
- return;
148
- }
149
- }
150
-
151
- GNDebug.log("[GN Socket] Disconnecting via SocketIOv3 BestHTTP 2");
152
-
153
- onDisconnectHandler();
154
- }
155
-
156
- internal override void connect(Action _onSocketConnect)
157
- {
158
- base.connect(_onSocketConnect);
159
-
160
- if (this.isConnected)
161
- {
162
- GNDebug.log("[GN Socket] Reconnecting");
163
-
164
- return;
165
- }
166
-
167
- this.isConnected = true;
168
-
169
- GNDebug.log("[GN Socket] Connecting via SocketIOv3 BestHTTP 2");
170
-
171
- if (this.socketManager != null) this.socketManager.Open();
172
- }
173
-
174
- }
175
-
176
- }
177
- #endif
1
+ namespace XmobiTea.GN.Networking.Socket
2
+ {
3
+ #if UNITY_USING_BEST_HTTP
4
+
5
+ using BestHTTP.SocketIO3;
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 v3.
15
+ /// </summary>
16
+ internal class NetworkingPeerSocketV3 : 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
+ /// <summary>
27
+ /// Sends an authentication request via the socket.
28
+ /// </summary>
29
+ internal override void sendRequestAuthSocket()
30
+ {
31
+ base.sendRequestAuthSocket();
32
+
33
+ if (!string.IsNullOrEmpty(this.clientId))
34
+ this.socketManager.Socket.Emit(Commands.RequestAuthTokenCmd, GNNetwork.getAuthenticateStatus().getAuthToken());
35
+ }
36
+
37
+ /// <summary>
38
+ /// Reinitializes the socket with a new configuration.
39
+ /// </summary>
40
+ internal override void reInitNewSocket()
41
+ {
42
+ base.reInitNewSocket();
43
+
44
+ if (this.socketManager == null)
45
+ {
46
+ var uri = new Uri(this.url + "/socket.io/");
47
+ this.socketManager = new SocketManager(uri, new SocketOptions()
48
+ {
49
+ Reconnection = true,
50
+ ReconnectionDelay = new TimeSpan(0, 0, this.reconnectDelay),
51
+ Timeout = new TimeSpan(0, 0, (int)this.pingTimeout),
52
+ AutoConnect = false,
53
+ ConnectWith = BestHTTP.SocketIO3.Transports.TransportTypes.WebSocket
54
+ });
55
+
56
+ this.socketManager.Socket.On(SocketIOEventTypes.Connect, this.onConnect);
57
+ this.socketManager.Socket.On(SocketIOEventTypes.Disconnect, this.onDisconnect);
58
+ this.socketManager.Socket.On(SocketIOEventTypes.Error, this.onError);
59
+
60
+ this.socketManager.Socket.On<byte[]>(Commands.ResponseCmd_MsgPack, this.onResponseMsgPack);
61
+ this.socketManager.Socket.On<byte[]>(Commands.EventCmd_MsgPack, this.onEventMsgPack);
62
+
63
+ this.socketManager.Socket.On<object[]>(Commands.ResponseCmd_Json, this.onResponseJson);
64
+ this.socketManager.Socket.On<object[]>(Commands.EventCmd_Json, this.onEventJson);
65
+ }
66
+ }
67
+
68
+ /// <summary>
69
+ /// Handles socket error events.
70
+ /// </summary>
71
+ private void onError()
72
+ {
73
+ GNDebug.log("[GN Socket RECV] Handle Error ");
74
+ }
75
+
76
+ /// <summary>
77
+ /// Handles MsgPack response messages.
78
+ /// </summary>
79
+ /// <param name="responseData">The response data in byte array format.</param>
80
+ private void onResponseMsgPack(byte[] responseData)
81
+ {
82
+ lock (this.messageLstLock)
83
+ {
84
+ this.responsePacketLst.Add(new SocketPacket(responseData, true));
85
+ }
86
+ }
87
+
88
+ /// <summary>
89
+ /// Handles MsgPack event messages.
90
+ /// </summary>
91
+ /// <param name="eventData">The event data in byte array format.</param>
92
+ private void onEventMsgPack(byte[] eventData)
93
+ {
94
+ lock (this.messageLstLock)
95
+ {
96
+ this.eventPacketLst.Add(new SocketPacket(eventData, true));
97
+ }
98
+ }
99
+
100
+ /// <summary>
101
+ /// Handles JSON response messages.
102
+ /// </summary>
103
+ /// <param name="responseData">The response data as an object array.</param>
104
+ private void onResponseJson(object[] responseData)
105
+ {
106
+ lock (this.messageLstLock)
107
+ {
108
+ this.responsePacketLst.Add(new SocketPacket(responseData, false));
109
+ }
110
+ }
111
+
112
+ /// <summary>
113
+ /// Handles JSON event messages.
114
+ /// </summary>
115
+ /// <param name="eventData">The event data as an object array.</param>
116
+ private void onEventJson(object[] eventData)
117
+ {
118
+ lock (this.messageLstLock)
119
+ {
120
+ this.eventPacketLst.Add(new SocketPacket(eventData, false));
121
+ }
122
+ }
123
+
124
+ /// <summary>
125
+ /// Handles socket disconnection events.
126
+ /// </summary>
127
+ private void onDisconnect()
128
+ {
129
+ GNDebug.log("[GN Socket RECV] HandleClose ");
130
+
131
+ this.clientId = string.Empty;
132
+
133
+ this.onDisconnectHandler();
134
+ }
135
+
136
+ /// <summary>
137
+ /// Handles socket connection events.
138
+ /// </summary>
139
+ private void onConnect()
140
+ {
141
+ GNDebug.log("[GN Socket RECV] HandleOpen " + this.socketManager.Socket.Id);
142
+
143
+ this.clientId = this.socketManager.Socket.Id;
144
+
145
+ this.onConnectHandler();
146
+ }
147
+
148
+ /// <summary>
149
+ /// Initializes the socket with the given configuration.
150
+ /// </summary>
151
+ /// <param name="url">The server URL.</param>
152
+ /// <param name="reconnectDelay">Delay in seconds before attempting to reconnect.</param>
153
+ /// <param name="pingInterval">Ping interval in seconds.</param>
154
+ /// <param name="pingTimeout">Ping timeout in seconds.</param>
155
+ internal override void init(string url, int reconnectDelay, float pingInterval, float pingTimeout)
156
+ {
157
+ base.init(url, reconnectDelay, pingInterval, pingTimeout);
158
+ }
159
+
160
+ /// <summary>
161
+ /// Emits a request via the socket.
162
+ /// </summary>
163
+ /// <param name="requestType">The type of request to emit.</param>
164
+ /// <param name="requestRole">The role associated with the request.</param>
165
+ /// <param name="operationRequest">The operation request data.</param>
166
+ /// <param name="authToken">Authentication token, if available.</param>
167
+ /// <param name="secretKey">Secret key, if available.</param>
168
+ /// <param name="customTags">Custom tags for the request.</param>
169
+ protected override void emit(RequestType requestType, RequestRole requestRole, OperationRequest operationRequest, string authToken, string secretKey, GNHashtable customTags, string gameId)
170
+ {
171
+ base.emit(requestType, requestRole, operationRequest, authToken, secretKey, customTags, gameId);
172
+
173
+ if (this.socketManager == null || this.socketManager.Socket == null)
174
+ {
175
+ return;
176
+ }
177
+
178
+ if (customTags != null) operationRequest.setParameter(GNParameterCode.CustomTags, customTags);
179
+
180
+ var dataSend = OperationHelper.toSocketData(requestType, requestRole, operationRequest);
181
+
182
+ if (operationRequest.isEncrypted())
183
+ this.socketManager.Socket.Emit(Commands.RequestCmd_MsgPack, MsgPackSerializer.Serialize(dataSend));
184
+ else
185
+ this.socketManager.Socket.Emit(Commands.RequestCmd_Json, dataSend);
186
+ }
187
+
188
+ /// <summary>
189
+ /// Closes the socket connection.
190
+ /// </summary>
191
+ /// <param name="_onSocketDisconnect">Callback for when the socket is disconnected.</param>
192
+ internal override void close(Action _onSocketDisconnect)
193
+ {
194
+ base.close(_onSocketDisconnect);
195
+
196
+ this.isConnected = false;
197
+
198
+ if (this.socketManager != null)
199
+ {
200
+ if (this.socketManager.State != SocketManager.States.Closed)
201
+ {
202
+ this.socketManager.Close();
203
+ return;
204
+ }
205
+ }
206
+
207
+ GNDebug.log("[GN Socket] Disconnecting via SocketIOv3 BestHTTP 2");
208
+
209
+ this.onDisconnectHandler();
210
+ }
211
+
212
+ /// <summary>
213
+ /// Opens a socket connection.
214
+ /// </summary>
215
+ /// <param name="_onSocketConnect">Callback for when the socket is connected.</param>
216
+ internal override void connect(Action _onSocketConnect)
217
+ {
218
+ base.connect(_onSocketConnect);
219
+
220
+ if (this.isConnected)
221
+ {
222
+ GNDebug.log("[GN Socket] Reconnecting");
223
+ return;
224
+ }
225
+
226
+ this.isConnected = true;
227
+
228
+ GNDebug.log("[GN Socket] Connecting via SocketIOv3 BestHTTP 2");
229
+
230
+ if (this.socketManager != null) this.socketManager.Open();
231
+ }
232
+ }
233
+
234
+ #endif
235
+ }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: 867fca23c721df0489a068f8378b3899
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: 867fca23c721df0489a068f8378b3899
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant: