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,199 +1,244 @@
1
- namespace XmobiTea.GN.Networking.Socket
2
- {
3
- using System;
4
- using System.Collections.Generic;
5
- using System.Linq;
6
- using XmobiTea.GN.Common;
7
- using XmobiTea.GN.Config;
8
- using XmobiTea.GN.Entity;
9
- using XmobiTea.GN.Logger;
10
-
11
- internal class SocketPeer : PeerBase
12
- {
13
- private NetworkingSocketPeerBase networkingSocketPeerBase;
14
-
15
-
16
- private Dictionary<int, List<IServerEventHandler>> serverEventHandlersDict;
17
-
18
- private Action<OperationEvent> _onEventHandler;
19
-
20
- internal string getClientId()
21
- {
22
- return this.networkingSocketPeerBase?.clientId;
23
- }
24
-
25
- internal bool isConnected()
26
- {
27
- return this.networkingSocketPeerBase.isWsConnected;
28
- }
29
-
30
- internal void sendRequestAuthSocket()
31
- {
32
- this.networkingSocketPeerBase.sendRequestAuthSocket();
33
- }
34
-
35
- void subscriberServerEventHandler()
36
- {
37
- if (this.serverEventHandlersDict == null) this.serverEventHandlersDict = new Dictionary<int, List<IServerEventHandler>>();
38
- else this.serverEventHandlersDict.Clear();
39
-
40
- var type = typeof(IServerEventHandler);
41
- var types = AppDomain.CurrentDomain.GetAssemblies()
42
- .SelectMany(s => s.GetTypes())
43
- .Where(p => type.IsAssignableFrom(p) && p != type).ToList();
44
-
45
- foreach (var t in types)
46
- {
47
- var srvMsg = Activator.CreateInstance(t) as IServerEventHandler;
48
- if (srvMsg != null)
49
- {
50
- List<IServerEventHandler> serverEventHandlers;
51
-
52
- if (!this.serverEventHandlersDict.ContainsKey(srvMsg.getEventCode()))
53
- {
54
- serverEventHandlers = new List<IServerEventHandler>();
55
-
56
- this.serverEventHandlersDict[srvMsg.getEventCode()] = serverEventHandlers;
57
- }
58
- else
59
- {
60
- serverEventHandlers = this.serverEventHandlersDict[srvMsg.getEventCode()];
61
- }
62
-
63
- serverEventHandlers.Add(srvMsg);
64
- }
65
- }
66
- }
67
-
68
- internal override void initGNSocketObject()
69
- {
70
- var gnServerSettings = GNNetwork.gnServerSettings;
71
- if (gnServerSettings == null) throw new NullReferenceException("Where is GN Server Settings");
72
-
73
- this.isUse = gnServerSettings.isUseSocket();
74
-
75
- var peerSocketVersion = gnServerSettings.getPeerSocketVersion();
76
-
77
- if (peerSocketVersion == PeerSocketVersion.V3)
1
+ namespace XmobiTea.GN.Networking.Socket
2
+ {
3
+ using System;
4
+ using System.Collections.Generic;
5
+ using System.Linq;
6
+ using XmobiTea.GN.Common;
7
+ using XmobiTea.GN.Config;
8
+ using XmobiTea.GN.Entity;
9
+ using XmobiTea.GN.Logger;
10
+
11
+ /// <summary>
12
+ /// Manages socket communication for the application.
13
+ /// </summary>
14
+ internal class SocketPeer : PeerBase
15
+ {
16
+ private NetworkingSocketPeerBase networkingSocketPeerBase;
17
+ private Dictionary<int, List<IServerEventHandler>> serverEventHandlersDict;
18
+ private Action<OperationEvent> _onEventHandler;
19
+
20
+ /// <summary>
21
+ /// Gets the client ID of the socket connection.
22
+ /// </summary>
23
+ /// <returns>The client ID as a string.</returns>
24
+ internal string getClientId()
25
+ {
26
+ return this.networkingSocketPeerBase?.clientId;
27
+ }
28
+
29
+ /// <summary>
30
+ /// Checks if the socket connection is established.
31
+ /// </summary>
32
+ /// <returns>True if connected, otherwise false.</returns>
33
+ internal bool isConnected()
34
+ {
35
+ return this.networkingSocketPeerBase.isWsConnected;
36
+ }
37
+
38
+ /// <summary>
39
+ /// Sends an authentication request via the socket.
40
+ /// </summary>
41
+ internal void sendRequestAuthSocket()
42
+ {
43
+ this.networkingSocketPeerBase.sendRequestAuthSocket();
44
+ }
45
+
46
+ /// <summary>
47
+ /// Subscribes server event handlers by scanning the current assembly.
48
+ /// </summary>
49
+ void subscriberServerEventHandler()
50
+ {
51
+ if (this.serverEventHandlersDict == null)
52
+ this.serverEventHandlersDict = new Dictionary<int, List<IServerEventHandler>>();
53
+ else
54
+ this.serverEventHandlersDict.Clear();
55
+
56
+ var type = typeof(IServerEventHandler);
57
+ var types = AppDomain.CurrentDomain.GetAssemblies()
58
+ .SelectMany(s => s.GetTypes())
59
+ .Where(p => type.IsAssignableFrom(p) && p != type).ToList();
60
+
61
+ foreach (var t in types)
78
62
  {
79
- #if UNITY_USING_BEST_HTTP
80
- this.networkingSocketPeerBase = new NetworkingPeerSocketV3();
81
- #endif
82
- }
83
- else
63
+ var srvMsg = Activator.CreateInstance(t) as IServerEventHandler;
64
+ if (srvMsg != null)
65
+ {
66
+ List<IServerEventHandler> serverEventHandlers;
67
+
68
+ if (!this.serverEventHandlersDict.ContainsKey(srvMsg.getEventCode()))
69
+ {
70
+ serverEventHandlers = new List<IServerEventHandler>();
71
+
72
+ this.serverEventHandlersDict[srvMsg.getEventCode()] = serverEventHandlers;
73
+ }
74
+ else
75
+ {
76
+ serverEventHandlers = this.serverEventHandlersDict[srvMsg.getEventCode()];
77
+ }
78
+
79
+ serverEventHandlers.Add(srvMsg);
80
+ }
81
+ }
82
+ }
83
+
84
+ /// <summary>
85
+ /// Initializes the socket object with server settings.
86
+ /// </summary>
87
+ internal override void initGNSocketObject()
88
+ {
89
+ var gnServerSettings = GNNetwork.gnServerSettings;
90
+ if (gnServerSettings == null) throw new NullReferenceException("Where is GN Server Settings");
91
+
92
+ this.isUse = gnServerSettings.isUseSocket();
93
+
94
+ var peerSocketVersion = gnServerSettings.getPeerSocketVersion();
95
+
96
+ if (peerSocketVersion == PeerSocketVersion.V3)
84
97
  {
85
- #if UNITY_USING_BEST_HTTP
86
- this.networkingSocketPeerBase = new NetworkingPeerSocketV2();
87
-
88
- if (peerSocketVersion == PeerSocketVersion.V2_v2)
89
- {
90
- ((NetworkingPeerSocketV2)this.networkingSocketPeerBase).setServerVersion(BestHTTP.SocketIO.SupportedSocketIOVersions.v2);
91
- }
92
- else if (peerSocketVersion == PeerSocketVersion.V2_v3)
93
- {
94
- ((NetworkingPeerSocketV2)this.networkingSocketPeerBase).setServerVersion(BestHTTP.SocketIO.SupportedSocketIOVersions.v3);
95
- }
96
- #endif
97
- }
98
-
99
- if (this.networkingSocketPeerBase == null) throw new NullReferenceException("this.networkingSocketPeerBase null");
100
-
101
- this.networkingSocketPeerBase.init(gnServerSettings.getSocketUrl(), gnServerSettings.getReconnectDelay(), gnServerSettings.getPingInterval(), gnServerSettings.getPingTimeout());
102
- this.networkingSocketPeerBase.reInitNewSocket();
103
-
104
- this.networkingSocketPeerBase.setOnEventHandler(this.onEventHandler);
105
- this.networkingSocketPeerBase.setOnResponseHandler(this.onResponseHandler);
106
-
107
- this.subscriberServerEventHandler();
108
- }
109
-
110
- internal void setOnConnectHandler(Action _onConnectHandler)
111
- {
112
- this.networkingSocketPeerBase.setOnConnectHandler(_onConnectHandler);
113
- }
114
-
115
- internal void setOnDisconnectHandler(Action _onDisconnectHandler)
116
- {
117
- this.networkingSocketPeerBase.setOnDisconnectHandler(_onDisconnectHandler);
118
- }
119
-
120
- internal void removeOnConnectHandler(Action _onConnectHandler)
121
- {
122
- this.networkingSocketPeerBase.removeOnConnectHandler(_onConnectHandler);
123
- }
124
-
125
- internal void removeOnDisconnectHandler(Action _onDisconnectHandler)
126
- {
127
- this.networkingSocketPeerBase.removeOnDisconnectHandler(_onDisconnectHandler);
128
- }
129
-
130
- internal void connect(Action _onSocketConnect)
131
- {
132
- this.networkingSocketPeerBase.connect(_onSocketConnect);
133
- }
134
-
135
- internal void disconnect(Action _onSocketDisconnect)
136
- {
137
- this.networkingSocketPeerBase.close(_onSocketDisconnect);
138
- }
139
-
140
- internal void setOnEventHandler(Action<OperationEvent> _onEventHandler)
141
- {
142
- this._onEventHandler = _onEventHandler;
143
- }
144
-
145
- internal override void send(OperationPending operationPending)
146
- {
147
- base.send(operationPending);
148
-
149
- GNDebug.log("[GN Socket SEND] " + operationPending.getOperationRequest().ToString());
150
-
151
- var authToken = operationPending.getAuthToken();
152
- var secretKey = operationPending.getSecretKey();
153
- var customTags = operationPending.getCustomTags();
154
-
155
- this.networkingSocketPeerBase.Send(operationPending.getRequestType(), operationPending.getRequestRole(), operationPending.getOperationRequest(), authToken, secretKey, customTags);
156
- }
157
-
158
- internal void onEventHandler(GNArray obj, bool isEncrypted)
159
- {
160
- var eventCode = obj.getInt(0);
161
-
162
- var operationEvent = new OperationEvent(eventCode, obj.getGNHashtable(1));
163
- operationEvent.setEncrypted(isEncrypted);
164
-
165
- GNDebug.log("[GN Socket EVENT] " + operationEvent.toString());
166
-
167
- this._onEventHandler?.Invoke(operationEvent);
168
-
169
- if (!this.serverEventHandlersDict.ContainsKey(eventCode))
170
- {
171
- return;
172
- }
173
-
174
- var serverEventHandlers = this.serverEventHandlersDict[eventCode];
175
-
176
- foreach (var serverEventHandler in serverEventHandlers)
177
- serverEventHandler.handle(operationEvent);
178
- }
179
-
180
- public override void service()
181
- {
182
- base.service();
183
-
184
- this.networkingSocketPeerBase?.service();
185
- }
186
-
187
- //internal static string Auth(BestHTTP.SocketIO3.SocketManager socketManager, BestHTTP.SocketIO3.Socket socket)
188
- //{
189
- // return authTokenFormat.Replace("$authtoken", GNNetwork.authToken);
190
- //}
191
-
192
- //internal static string Auth(BestHTTP.SocketIO.SocketManager socketManager, BestHTTP.SocketIO.Socket socket)
193
- //{
194
- // return authTokenFormat.Replace("$authtoken", GNNetwork.authToken);
195
- //}
196
-
197
- }
198
-
199
- }
98
+ #if UNITY_USING_BEST_HTTP
99
+ this.networkingSocketPeerBase = new NetworkingPeerSocketV3();
100
+ #endif
101
+ }
102
+ else
103
+ {
104
+ #if UNITY_USING_BEST_HTTP
105
+ this.networkingSocketPeerBase = new NetworkingPeerSocketV2();
106
+
107
+ if (peerSocketVersion == PeerSocketVersion.V2_v2)
108
+ {
109
+ ((NetworkingPeerSocketV2)this.networkingSocketPeerBase).setServerVersion(BestHTTP.SocketIO.SupportedSocketIOVersions.v2);
110
+ }
111
+ else if (peerSocketVersion == PeerSocketVersion.V2_v3)
112
+ {
113
+ ((NetworkingPeerSocketV2)this.networkingSocketPeerBase).setServerVersion(BestHTTP.SocketIO.SupportedSocketIOVersions.v3);
114
+ }
115
+ #endif
116
+ }
117
+
118
+ if (this.networkingSocketPeerBase == null) throw new NullReferenceException("this.networkingSocketPeerBase null");
119
+
120
+ this.networkingSocketPeerBase.init(gnServerSettings.getSocketUrl(), gnServerSettings.getReconnectDelay(), gnServerSettings.getPingInterval(), gnServerSettings.getPingTimeout());
121
+ this.networkingSocketPeerBase.reInitNewSocket();
122
+
123
+ this.networkingSocketPeerBase.setOnEventHandler(this.onEventHandler);
124
+ this.networkingSocketPeerBase.setOnResponseHandler(this.onResponseHandler);
125
+
126
+ this.subscriberServerEventHandler();
127
+ }
128
+
129
+ /// <summary>
130
+ /// Sets a callback for when the socket connects.
131
+ /// </summary>
132
+ internal void setOnConnectHandler(Action _onConnectHandler)
133
+ {
134
+ this.networkingSocketPeerBase.setOnConnectHandler(_onConnectHandler);
135
+ }
136
+
137
+ /// <summary>
138
+ /// Sets a callback for when the socket disconnects.
139
+ /// </summary>
140
+ internal void setOnDisconnectHandler(Action _onDisconnectHandler)
141
+ {
142
+ this.networkingSocketPeerBase.setOnDisconnectHandler(_onDisconnectHandler);
143
+ }
144
+
145
+ /// <summary>
146
+ /// Removes the connection callback.
147
+ /// </summary>
148
+ internal void removeOnConnectHandler(Action _onConnectHandler)
149
+ {
150
+ this.networkingSocketPeerBase.removeOnConnectHandler(_onConnectHandler);
151
+ }
152
+
153
+ /// <summary>
154
+ /// Removes the disconnection callback.
155
+ /// </summary>
156
+ internal void removeOnDisconnectHandler(Action _onDisconnectHandler)
157
+ {
158
+ this.networkingSocketPeerBase.removeOnDisconnectHandler(_onDisconnectHandler);
159
+ }
160
+
161
+ /// <summary>
162
+ /// Connects the socket with a specified callback.
163
+ /// </summary>
164
+ internal void connect(Action _onSocketConnect)
165
+ {
166
+ this.networkingSocketPeerBase.connect(_onSocketConnect);
167
+ }
168
+
169
+ /// <summary>
170
+ /// Disconnects the socket with a specified callback.
171
+ /// </summary>
172
+ internal void disconnect(Action _onSocketDisconnect)
173
+ {
174
+ this.networkingSocketPeerBase.close(_onSocketDisconnect);
175
+ }
176
+
177
+ /// <summary>
178
+ /// Sets the event handler for incoming socket events.
179
+ /// </summary>
180
+ internal void setOnEventHandler(Action<OperationEvent> _onEventHandler)
181
+ {
182
+ this._onEventHandler = _onEventHandler;
183
+ }
184
+
185
+ /// <summary>
186
+ /// Sends an operation request via the socket.
187
+ /// </summary>
188
+ internal override void send(OperationPending operationPending)
189
+ {
190
+ base.send(operationPending);
191
+
192
+ GNDebug.log("[GN Socket SEND] " + operationPending.getOperationRequest().ToString());
193
+
194
+ var authToken = operationPending.getAuthToken();
195
+ var secretKey = operationPending.getSecretKey();
196
+ var gameId = operationPending.getGameId();
197
+ var customTags = operationPending.getCustomTags();
198
+
199
+ this.networkingSocketPeerBase.Send(operationPending.getRequestType(), operationPending.getRequestRole(), operationPending.getOperationRequest(), authToken, secretKey, customTags, gameId);
200
+ }
201
+
202
+ /// <summary>
203
+ /// Handles incoming socket events and invokes appropriate handlers.
204
+ /// </summary>
205
+ internal void onEventHandler(GNArray obj, bool isEncrypted)
206
+ {
207
+ var eventCode = obj.getInt(0);
208
+
209
+ var operationEvent = new OperationEvent(eventCode, obj.getGNHashtable(1));
210
+ operationEvent.setEncrypted(isEncrypted);
211
+
212
+ GNDebug.log("[GN Socket EVENT] " + operationEvent.toString());
213
+
214
+ this._onEventHandler?.Invoke(operationEvent);
215
+
216
+ if (!this.serverEventHandlersDict.ContainsKey(eventCode)) return;
217
+
218
+ var serverEventHandlers = this.serverEventHandlersDict[eventCode];
219
+
220
+ foreach (var serverEventHandler in serverEventHandlers)
221
+ serverEventHandler.handle(operationEvent);
222
+ }
223
+
224
+ /// <summary>
225
+ /// Processes socket service operations.
226
+ /// </summary>
227
+ public override void service()
228
+ {
229
+ base.service();
230
+ this.networkingSocketPeerBase?.service();
231
+ }
232
+
233
+ //internal static string Auth(BestHTTP.SocketIO3.SocketManager socketManager, BestHTTP.SocketIO3.Socket socket)
234
+ //{
235
+ // return authTokenFormat.Replace("$authtoken", GNNetwork.authToken);
236
+ //}
237
+
238
+ //internal static string Auth(BestHTTP.SocketIO.SocketManager socketManager, BestHTTP.SocketIO.Socket socket)
239
+ //{
240
+ // return authTokenFormat.Replace("$authtoken", GNNetwork.authToken);
241
+ //}
242
+
243
+ }
244
+ }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: 138a4e1d48a3d2f47afac60685c8f2f0
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: 138a4e1d48a3d2f47afac60685c8f2f0
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -1,8 +1,8 @@
1
- fileFormatVersion: 2
2
- guid: 072aeea0e87803c4cad987251dbec2f4
3
- folderAsset: yes
4
- DefaultImporter:
5
- externalObjects: {}
6
- userData:
7
- assetBundleName:
8
- assetBundleVariant:
1
+ fileFormatVersion: 2
2
+ guid: 072aeea0e87803c4cad987251dbec2f4
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
@@ -1,8 +1,8 @@
1
- fileFormatVersion: 2
2
- guid: 39e70e9a43268c543b8b066ca0e74205
3
- folderAsset: yes
4
- DefaultImporter:
5
- externalObjects: {}
6
- userData:
7
- assetBundleName:
8
- assetBundleVariant:
1
+ fileFormatVersion: 2
2
+ guid: 39e70e9a43268c543b8b066ca0e74205
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
@@ -0,0 +1,10 @@
1
+ namespace XmobiTea.GN.Unity
2
+ {
3
+ /// <summary>
4
+ /// The ServiceCoroutine class is responsible for updating and handling coroutine.
5
+ /// </summary>
6
+ internal class ServiceCoroutine : UnityEngine.MonoBehaviour
7
+ {
8
+
9
+ }
10
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: ca6afd49457b28042961edb32d42fc12
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -1,20 +1,33 @@
1
- namespace XmobiTea.GN.Unity
2
- {
3
- using XmobiTea.GN.Networking;
4
-
5
- internal class ServiceUpdate : UnityEngine.MonoBehaviour
6
- {
7
- internal NetworkingPeer peer;
8
-
9
- private void update()
10
- {
11
- this.peer?.service();
12
- }
13
-
14
- void Update()
15
- {
16
- this.update();
17
- }
18
- }
19
-
20
- }
1
+ namespace XmobiTea.GN.Unity
2
+ {
3
+ using XmobiTea.GN.Networking;
4
+
5
+ /// <summary>
6
+ /// The ServiceUpdate class is responsible for updating and handling network services.
7
+ /// </summary>
8
+ internal class ServiceUpdate : UnityEngine.MonoBehaviour
9
+ {
10
+ /// <summary>
11
+ /// The NetworkingPeer instance used to perform network operations.
12
+ /// </summary>
13
+ internal NetworkingPeer peer;
14
+
15
+ /// <summary>
16
+ /// Handles the logic to update the network service.
17
+ /// </summary>
18
+ private void update()
19
+ {
20
+ // Calls the service() method of the peer object if it is not null.
21
+ this.peer?.service();
22
+ }
23
+
24
+ /// <summary>
25
+ /// Unity's Update method, called once per frame.
26
+ /// </summary>
27
+ void Update()
28
+ {
29
+ // Invokes the custom update() method to handle network logic.
30
+ this.update();
31
+ }
32
+ }
33
+ }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: 535d48a60a02ae14d83f19e9a749983b
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: 535d48a60a02ae14d83f19e9a749983b
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -1,8 +1,8 @@
1
- fileFormatVersion: 2
2
- guid: 58c343c317839a5469f8ff68787ae561
3
- folderAsset: yes
4
- DefaultImporter:
5
- externalObjects: {}
6
- userData:
7
- assetBundleName:
8
- assetBundleVariant:
1
+ fileFormatVersion: 2
2
+ guid: 58c343c317839a5469f8ff68787ae561
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
@@ -1,17 +1,17 @@
1
- {
2
- "name": "XmobiTea.GN.runtime",
3
- "rootNamespace": "",
4
- "references": [
5
- "BestHTTP",
6
- "XmobiTea.MsgPack.runtime"
7
- ],
8
- "includePlatforms": [],
9
- "excludePlatforms": [],
10
- "allowUnsafeCode": false,
11
- "overrideReferences": false,
12
- "precompiledReferences": [],
13
- "autoReferenced": true,
14
- "defineConstraints": [],
15
- "versionDefines": [],
16
- "noEngineReferences": false
1
+ {
2
+ "name": "XmobiTea.GN.runtime",
3
+ "rootNamespace": "",
4
+ "references": [
5
+ "BestHTTP",
6
+ "XmobiTea.MsgPack.runtime"
7
+ ],
8
+ "includePlatforms": [],
9
+ "excludePlatforms": [],
10
+ "allowUnsafeCode": false,
11
+ "overrideReferences": false,
12
+ "precompiledReferences": [],
13
+ "autoReferenced": true,
14
+ "defineConstraints": [],
15
+ "versionDefines": [],
16
+ "noEngineReferences": false
17
17
  }