@xmobitea/gn-typescript-client 2.4.3-esnext → 2.4.3

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 (110) hide show
  1. package/dist/gn.js.client.js +48380 -0
  2. package/dist/gn.js.client.min.js +2 -0
  3. package/dist/gn.js.client.min.js.LICENSE.txt +14 -0
  4. package/dist/index.js +35669 -320
  5. package/package.json +1 -1
  6. package/dist/runtime/GNNetwork.js +0 -241
  7. package/dist/runtime/GNNetworkAuthenticateApi.js +0 -167
  8. package/dist/runtime/GNNetworkCharacterPlayerApi.js +0 -1271
  9. package/dist/runtime/GNNetworkCloudScriptApi.js +0 -143
  10. package/dist/runtime/GNNetworkContentApi.js +0 -191
  11. package/dist/runtime/GNNetworkDashboardApi.js +0 -223
  12. package/dist/runtime/GNNetworkGamePlayerApi.js +0 -1247
  13. package/dist/runtime/GNNetworkGroupApi.js +0 -983
  14. package/dist/runtime/GNNetworkInventoryApi.js +0 -839
  15. package/dist/runtime/GNNetworkMasterPlayerApi.js +0 -2071
  16. package/dist/runtime/GNNetworkMultiplayerApi.js +0 -263
  17. package/dist/runtime/GNNetworkStoreInventoryApi.js +0 -311
  18. package/dist/runtime/common/Action0.js +0 -1
  19. package/dist/runtime/common/Action1.js +0 -1
  20. package/dist/runtime/common/Action2.js +0 -1
  21. package/dist/runtime/common/Action3.js +0 -1
  22. package/dist/runtime/common/Action4.js +0 -1
  23. package/dist/runtime/common/GNData.js +0 -211
  24. package/dist/runtime/config/GNServerSettings.js +0 -127
  25. package/dist/runtime/constant/Commands.js +0 -19
  26. package/dist/runtime/constant/EventCode.js +0 -8
  27. package/dist/runtime/constant/OperationCode.js +0 -218
  28. package/dist/runtime/constant/ReturnCode.js +0 -14
  29. package/dist/runtime/constant/enumType/FriendStatus.js +0 -7
  30. package/dist/runtime/constant/enumType/GoogleLoginType.js +0 -5
  31. package/dist/runtime/constant/enumType/GroupStatus.js +0 -7
  32. package/dist/runtime/constant/enumType/InvalidMemberType.js +0 -18
  33. package/dist/runtime/constant/enumType/ItemType.js +0 -5
  34. package/dist/runtime/constant/enumType/MatchmakingMemberStatus.js +0 -6
  35. package/dist/runtime/constant/enumType/MatchmakingTicketStatus.js +0 -8
  36. package/dist/runtime/constant/enumType/OwnerType.js +0 -8
  37. package/dist/runtime/constant/enumType/PermissionDataItem.js +0 -5
  38. package/dist/runtime/constant/enumType/PushPlatformType.js +0 -5
  39. package/dist/runtime/constant/enumType/RequestRole.js +0 -6
  40. package/dist/runtime/constant/enumType/RequestType.js +0 -15
  41. package/dist/runtime/constant/enumType/StoreReceiveType.js +0 -8
  42. package/dist/runtime/constant/errorCode/GNErrorCode.js +0 -50
  43. package/dist/runtime/constant/parameterCode/GNParameterCode.js +0 -581
  44. package/dist/runtime/constant/parameterCode/ParameterCode.js +0 -6
  45. package/dist/runtime/entity/DataMember.js +0 -208
  46. package/dist/runtime/entity/GNMetadata.js +0 -11
  47. package/dist/runtime/entity/InvalidMember.js +0 -1
  48. package/dist/runtime/entity/OperationEvent.js +0 -33
  49. package/dist/runtime/entity/OperationHelper.js +0 -23
  50. package/dist/runtime/entity/OperationRequest.js +0 -51
  51. package/dist/runtime/entity/OperationResponse.js +0 -82
  52. package/dist/runtime/entity/models/AuthenticateModels.js +0 -420
  53. package/dist/runtime/entity/models/AuthenticateRequestModels.js +0 -206
  54. package/dist/runtime/entity/models/AuthenticateResponseModels.js +0 -131
  55. package/dist/runtime/entity/models/CharacterPlayerModels.js +0 -1377
  56. package/dist/runtime/entity/models/CharacterPlayerRequestModels.js +0 -1412
  57. package/dist/runtime/entity/models/CharacterPlayerResponseModels.js +0 -369
  58. package/dist/runtime/entity/models/CloudScriptModels.js +0 -197
  59. package/dist/runtime/entity/models/CloudScriptRequestModels.js +0 -143
  60. package/dist/runtime/entity/models/CloudScriptResponseModels.js +0 -40
  61. package/dist/runtime/entity/models/ContentModels.js +0 -211
  62. package/dist/runtime/entity/models/ContentRequestModels.js +0 -197
  63. package/dist/runtime/entity/models/ContentResponseModels.js +0 -54
  64. package/dist/runtime/entity/models/DashboardModels.js +0 -2877
  65. package/dist/runtime/entity/models/DashboardRequestModels.js +0 -283
  66. package/dist/runtime/entity/models/DashboardResponseModels.js +0 -180
  67. package/dist/runtime/entity/models/GamePlayerModels.js +0 -1543
  68. package/dist/runtime/entity/models/GamePlayerRequestModels.js +0 -1385
  69. package/dist/runtime/entity/models/GamePlayerResponseModels.js +0 -362
  70. package/dist/runtime/entity/models/GenericModels.js +0 -177
  71. package/dist/runtime/entity/models/GroupModels.js +0 -1123
  72. package/dist/runtime/entity/models/GroupRequestModels.js +0 -1088
  73. package/dist/runtime/entity/models/GroupResponseModels.js +0 -285
  74. package/dist/runtime/entity/models/InventoryModels.js +0 -903
  75. package/dist/runtime/entity/models/InventoryRequestModels.js +0 -926
  76. package/dist/runtime/entity/models/InventoryResponseModels.js +0 -243
  77. package/dist/runtime/entity/models/MasterPlayerModels.js +0 -2566
  78. package/dist/runtime/entity/models/MasterPlayerRequestModels.js +0 -2314
  79. package/dist/runtime/entity/models/MasterPlayerResponseModels.js +0 -607
  80. package/dist/runtime/entity/models/MultiplayerModels.js +0 -404
  81. package/dist/runtime/entity/models/MultiplayerRequestModels.js +0 -278
  82. package/dist/runtime/entity/models/MultiplayerResponseModels.js +0 -75
  83. package/dist/runtime/entity/models/StoreInventoryModels.js +0 -733
  84. package/dist/runtime/entity/models/StoreInventoryRequestModels.js +0 -332
  85. package/dist/runtime/entity/models/StoreInventoryResponseModels.js +0 -89
  86. package/dist/runtime/entity/request/CustomOperationRequest.js +0 -24
  87. package/dist/runtime/entity/response/CustomOperationResponse.js +0 -29
  88. package/dist/runtime/helper/CodeHelper.js +0 -61
  89. package/dist/runtime/helper/ConverterService.js +0 -275
  90. package/dist/runtime/helper/GNSupport.js +0 -8
  91. package/dist/runtime/logger/GNDebug.js +0 -29
  92. package/dist/runtime/networking/AuthenticateStatus.js +0 -14
  93. package/dist/runtime/networking/IPeer.js +0 -1
  94. package/dist/runtime/networking/NetworkingPeer.js +0 -129
  95. package/dist/runtime/networking/OperationPending.js +0 -53
  96. package/dist/runtime/networking/PeerBase.js +0 -168
  97. package/dist/runtime/networking/handler/IServerEventHandler.js +0 -13
  98. package/dist/runtime/networking/handler/OnCharacterPlayerFriendUpdateEventHandler.js +0 -39
  99. package/dist/runtime/networking/handler/OnCharacterPlayerGroupUpdateEventHandler.js +0 -39
  100. package/dist/runtime/networking/handler/OnGamePlayerFriendUpdateEventHandler.js +0 -39
  101. package/dist/runtime/networking/handler/OnGamePlayerGroupUpdateEventHandler.js +0 -39
  102. package/dist/runtime/networking/handler/OnGroupMemberUpdateEventHandler.js +0 -35
  103. package/dist/runtime/networking/handler/OnGroupMessageUpdateEventHandler.js +0 -35
  104. package/dist/runtime/networking/http/HttpPeer.js +0 -121
  105. package/dist/runtime/networking/http/NetworkingHttpPeerBase.js +0 -6
  106. package/dist/runtime/networking/http/NetworkingPeerAxiosRequest.js +0 -146
  107. package/dist/runtime/networking/socket/NetworkingPeerSocketIOClient.js +0 -126
  108. package/dist/runtime/networking/socket/NetworkingSocketPeerBase.js +0 -176
  109. package/dist/runtime/networking/socket/SocketPeer.js +0 -105
  110. package/dist/runtime/typescript/ServiceUpdate.js +0 -12
@@ -1,275 +0,0 @@
1
- import { GNFieldDataType, getGNObjectMetadata } from "./../entity/DataMember";
2
- import { GNArray, GNData, GNHashtable } from "./../common/GNData";
3
- class DataMemberFieldInfoTypeMapper {
4
- getGNEnhancedObjectFieldMetadata(cls) {
5
- let declaredFields;
6
- if (this.declaredFieldsMap.has(cls)) {
7
- declaredFields = this.declaredFieldsMap.get(cls);
8
- }
9
- else {
10
- let gnObjectMetadata = getGNObjectMetadata(cls);
11
- declaredFields = gnObjectMetadata != null ? gnObjectMetadata.fields : [];
12
- this.declaredFieldsMap.set(cls, declaredFields);
13
- }
14
- return declaredFields;
15
- }
16
- constructor() {
17
- this.declaredFieldsMap = new Map();
18
- }
19
- }
20
- class DeserializeConverter {
21
- deserializeObject(gnHashtable, cls) {
22
- if (gnHashtable == null)
23
- return null;
24
- let declaredFields = this.dataMemberFieldInfoMapper.getGNEnhancedObjectFieldMetadata(cls);
25
- let answer = new cls();
26
- declaredFields.forEach(declaredField => {
27
- let value = gnHashtable.getObject(declaredField.code);
28
- let typeOfValue = typeof value;
29
- if (declaredField.gnFieldType == GNFieldDataType.String) {
30
- if (value == null)
31
- answer[declaredField.name] = declaredField.defaultValue;
32
- else if (typeOfValue == "string")
33
- answer[declaredField.name] = value;
34
- }
35
- else if (declaredField.gnFieldType == GNFieldDataType.Boolean) {
36
- if (value == null)
37
- answer[declaredField.name] = declaredField.defaultValue;
38
- else if (typeOfValue == "boolean")
39
- answer[declaredField.name] = value;
40
- }
41
- else if (declaredField.gnFieldType == GNFieldDataType.GNHashtable) {
42
- if (value == null) {
43
- if (declaredField.defaultValue != null) {
44
- if (declaredField.cls == GNHashtable)
45
- answer[declaredField.name] = declaredField.defaultValue;
46
- else if (typeof declaredField.cls == "object")
47
- answer[declaredField.name] = declaredField.defaultValue.toData();
48
- else
49
- answer[declaredField.name] = this.deserializeObject(declaredField.defaultValue, declaredField.cls);
50
- }
51
- }
52
- else {
53
- if (declaredField.cls == GNHashtable)
54
- answer[declaredField.name] = value;
55
- else if (typeof declaredField.cls == "object")
56
- answer[declaredField.name] = value.toData();
57
- else
58
- answer[declaredField.name] = this.deserializeObject(value, declaredField.cls);
59
- }
60
- }
61
- else if (declaredField.gnFieldType == GNFieldDataType.GNArray) {
62
- if (value == null) {
63
- if (declaredField.defaultValue != null) {
64
- if (declaredField.cls == GNArray)
65
- answer[declaredField.name] = declaredField.defaultValue;
66
- else if (typeof declaredField.cls == "object")
67
- answer[declaredField.name] = declaredField.defaultValue.toData();
68
- else
69
- answer[declaredField.name] = this.deserializeArray(declaredField.defaultValue, declaredField.cls);
70
- }
71
- }
72
- else {
73
- if (declaredField.cls == GNArray)
74
- answer[declaredField.name] = value;
75
- else if (typeof declaredField.cls == "object")
76
- answer[declaredField.name] = value.toData();
77
- else
78
- answer[declaredField.name] = this.deserializeArray(value, declaredField.cls);
79
- }
80
- }
81
- else if (declaredField.gnFieldType == GNFieldDataType.Number) {
82
- if (value == null)
83
- answer[declaredField.name] = declaredField.defaultValue;
84
- else if (typeOfValue == "number")
85
- answer[declaredField.name] = value;
86
- }
87
- else {
88
- if (value == null) {
89
- if (declaredField.defaultValue != null) {
90
- if (declaredField.cls == Number)
91
- answer[declaredField.name] = declaredField.defaultValue;
92
- else if (declaredField.cls == String)
93
- answer[declaredField.name] = declaredField.defaultValue;
94
- else if (declaredField.cls == Boolean)
95
- answer[declaredField.name] = declaredField.defaultValue;
96
- else if (declaredField.cls == GNHashtable)
97
- answer[declaredField.name] = this.deserializeObject(declaredField.defaultValue, declaredField.cls);
98
- else if (declaredField.cls == GNArray)
99
- answer[declaredField.name] = this.deserializeArray(declaredField.defaultValue, declaredField.cls);
100
- else
101
- answer[declaredField.name] = declaredField.defaultValue;
102
- }
103
- }
104
- else {
105
- if (declaredField.cls == Number)
106
- answer[declaredField.name] = value;
107
- else if (declaredField.cls == String)
108
- answer[declaredField.name] = value;
109
- else if (declaredField.cls == Boolean)
110
- answer[declaredField.name] = value;
111
- else if (declaredField.cls == GNHashtable)
112
- answer[declaredField.name] = this.deserializeObject(value, declaredField.cls);
113
- else if (declaredField.cls == GNArray)
114
- answer[declaredField.name] = this.deserializeArray(value, declaredField.cls);
115
- else
116
- answer[declaredField.name] = value;
117
- }
118
- }
119
- });
120
- return answer;
121
- }
122
- deserializeArray(gnArray, cls) {
123
- if (gnArray == null)
124
- return null;
125
- let answer = [];
126
- for (let i = 0; i < gnArray.count(); i++) {
127
- let value = gnArray.getObject(i);
128
- if (value == null)
129
- answer.push(null);
130
- else {
131
- let typeOfValue = typeof value;
132
- if (typeOfValue == "number")
133
- answer.push(value);
134
- else if (typeOfValue == "string")
135
- answer.push(value);
136
- else if (typeOfValue == "boolean")
137
- answer.push(value);
138
- else if (cls == GNArray)
139
- answer.push(value);
140
- else if (cls == GNData)
141
- answer.push(value);
142
- else if (typeOfValue == "object") {
143
- if (Array.isArray(value)) {
144
- answer.push(this.deserializeArray(gnArray.getGNArray(i), cls));
145
- }
146
- else {
147
- answer.push(this.deserializeObject(gnArray.getGNHashtable(i), cls));
148
- }
149
- }
150
- }
151
- }
152
- return answer;
153
- }
154
- constructor(dataMemberFieldInfoMapper) {
155
- this.dataMemberFieldInfoMapper = dataMemberFieldInfoMapper;
156
- }
157
- }
158
- class SerializeConverter {
159
- serializeObject(obj, cls) {
160
- if (obj == null)
161
- return null;
162
- let fieldInfos = this.dataMemberFieldInfoMapper.getGNEnhancedObjectFieldMetadata(cls);
163
- let answer = new GNHashtable();
164
- fieldInfos.forEach((field) => {
165
- let dataMemberAnno = field;
166
- let value = obj[dataMemberAnno.name];
167
- if (value == null) {
168
- if (!dataMemberAnno.isOptional)
169
- answer.add(dataMemberAnno.code, null);
170
- }
171
- else {
172
- let typeOfValue = typeof value;
173
- if (dataMemberAnno.gnFieldType == GNFieldDataType.String) {
174
- if (typeOfValue == "string")
175
- answer.add(dataMemberAnno.code, value);
176
- }
177
- else if (dataMemberAnno.gnFieldType == GNFieldDataType.Boolean) {
178
- if (typeOfValue == "boolean")
179
- answer.add(dataMemberAnno.code, value);
180
- }
181
- else if (dataMemberAnno.gnFieldType == GNFieldDataType.GNHashtable) {
182
- if (value instanceof GNHashtable)
183
- answer.add(dataMemberAnno.code, value);
184
- else if (typeOfValue === "object") {
185
- if (!Array.isArray(value))
186
- answer.add(dataMemberAnno.code, this.serializeObject(value, dataMemberAnno.cls));
187
- }
188
- }
189
- else if (dataMemberAnno.gnFieldType == GNFieldDataType.GNArray) {
190
- if (value instanceof GNArray)
191
- answer.add(dataMemberAnno.code, value);
192
- else if (typeOfValue === "object") {
193
- if (Array.isArray(value))
194
- answer.add(dataMemberAnno.code, this.serializeArray(value, dataMemberAnno.cls));
195
- }
196
- }
197
- else if (dataMemberAnno.gnFieldType == GNFieldDataType.Number) {
198
- if (typeOfValue == "number")
199
- answer.add(dataMemberAnno.code, value);
200
- }
201
- else {
202
- if (typeOfValue == "string")
203
- answer.add(dataMemberAnno.code, value);
204
- else if (typeOfValue == "boolean")
205
- answer.add(dataMemberAnno.code, value);
206
- else if (typeOfValue == "number")
207
- answer.add(dataMemberAnno.code, value);
208
- else if (value instanceof GNData)
209
- answer.add(dataMemberAnno.code, value);
210
- else if (typeOfValue == "object") {
211
- if (Array.isArray(value))
212
- answer.add(dataMemberAnno.code, this.serializeArray(value, dataMemberAnno.cls));
213
- else
214
- answer.add(dataMemberAnno.code, GNHashtable.builder().addAll(value).build());
215
- }
216
- else
217
- answer.add(dataMemberAnno.code, this.serializeObject(value, dataMemberAnno.cls));
218
- }
219
- }
220
- });
221
- return answer;
222
- }
223
- serializeArray(objLst, cls) {
224
- if (objLst == null)
225
- return null;
226
- let answer = new GNArray();
227
- for (let i = 0; i < objLst.length; i++) {
228
- let obj = objLst[i];
229
- if (obj == null)
230
- answer.add(null);
231
- else {
232
- let typeOfValue = typeof obj;
233
- if (typeOfValue === "string")
234
- answer.add(obj);
235
- else if (typeOfValue === "boolean")
236
- answer.add(obj);
237
- else if (typeOfValue === "number")
238
- answer.add(obj);
239
- else if (obj instanceof GNData)
240
- answer.add(obj);
241
- else {
242
- if (typeOfValue === "object") {
243
- if (Array.isArray(obj))
244
- answer.add(this.serializeArray(obj, cls));
245
- else
246
- answer.add(this.serializeObject(obj, cls));
247
- }
248
- }
249
- }
250
- }
251
- return answer;
252
- }
253
- constructor(dataMemberFieldInfoMapper) {
254
- this.dataMemberFieldInfoMapper = dataMemberFieldInfoMapper;
255
- }
256
- }
257
- export class ConverterService {
258
- static deserializeObject(gnHashtable, cls) {
259
- return ConverterService.deserializeConverter.deserializeObject(gnHashtable, cls);
260
- }
261
- static deserializeArray(gnArray, cls) {
262
- return ConverterService.deserializeConverter.deserializeArray(gnArray, cls);
263
- }
264
- static serializeObject(obj, cls) {
265
- return ConverterService.serializeConverter.serializeObject(obj, cls);
266
- }
267
- static serializeArray(objLst, cls) {
268
- return ConverterService.serializeConverter.serializeArray(objLst, cls);
269
- }
270
- static init() {
271
- let dataMemberFieldInfoMapper = new DataMemberFieldInfoTypeMapper();
272
- ConverterService.serializeConverter = new SerializeConverter(dataMemberFieldInfoMapper);
273
- ConverterService.deserializeConverter = new DeserializeConverter(dataMemberFieldInfoMapper);
274
- }
275
- }
@@ -1,8 +0,0 @@
1
- export class GNSupport {
2
- static init() {
3
- this._isBrowser = (typeof window !== "undefined");
4
- }
5
- static isBrowser() {
6
- return this._isBrowser;
7
- }
8
- }
@@ -1,29 +0,0 @@
1
- export var LogType;
2
- (function (LogType) {
3
- LogType[LogType["Off"] = 0] = "Off";
4
- LogType[LogType["Exception"] = 1] = "Exception";
5
- LogType[LogType["Error"] = 2] = "Error";
6
- LogType[LogType["Warning"] = 3] = "Warning";
7
- LogType[LogType["All"] = 4] = "All";
8
- })(LogType || (LogType = {}));
9
- export class GNDebug {
10
- static setLogType(logType) {
11
- this._logType = logType;
12
- }
13
- static log(message) {
14
- if (this._logType >= LogType.All)
15
- console.log(message);
16
- }
17
- static logException(exception) {
18
- if (this._logType >= LogType.Exception)
19
- console.error(exception);
20
- }
21
- static logWarning(message) {
22
- if (this._logType >= LogType.Warning)
23
- console.warn(message);
24
- }
25
- static logError(message) {
26
- if (this._logType >= LogType.Error)
27
- console.error(message);
28
- }
29
- }
@@ -1,14 +0,0 @@
1
- export class AuthenticateStatus {
2
- getAuthToken() {
3
- return this.authToken;
4
- }
5
- setAuthToken(authToken) {
6
- this.authToken = authToken;
7
- }
8
- getUserId() {
9
- return this.userId;
10
- }
11
- setUserId(userId) {
12
- this.userId = userId;
13
- }
14
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,129 +0,0 @@
1
- import { Commands } from "./../constant/Commands";
2
- import { GNArray } from "./../common/GNData";
3
- import { ReturnCode } from "./../constant/ReturnCode";
4
- import { GNNetwork } from "./../GNNetwork";
5
- import { HttpPeer } from "./http/HttpPeer";
6
- import { SocketPeer } from "./socket/SocketPeer";
7
- import { AuthenticateStatus } from "./AuthenticateStatus";
8
- import { RequestRole } from "./../constant/enumType/RequestRole";
9
- export class NetworkingPeer {
10
- getPing() {
11
- let count = 0;
12
- let totalPing = 0;
13
- if (this.httpPeer.isUsing()) {
14
- count++;
15
- totalPing += this.httpPeer.ping;
16
- }
17
- if (this.socketPeer.isUsing()) {
18
- count++;
19
- totalPing += this.socketPeer.ping;
20
- }
21
- return totalPing / count;
22
- }
23
- getClientId() {
24
- return this.socketPeer.getClientId();
25
- }
26
- setServerTimeMilliseconds(currentServerMilliseconds) {
27
- this.lastCurrentServerMilliseconds = currentServerMilliseconds;
28
- this.lastGetCurrentMilliseconds = Date.now() / 1000;
29
- }
30
- getServerTimestamp() {
31
- return this.lastCurrentServerMilliseconds + ((Date.now() / 1000 - this.lastGetCurrentMilliseconds) * 1000);
32
- }
33
- initPeer() {
34
- this.setServerTimeMilliseconds(new Date().getUTCMilliseconds());
35
- let gnServerSettings = GNNetwork.getGNServerSettings();
36
- if (gnServerSettings == null)
37
- throw new Error("Null GN Server Settings, please find it now");
38
- this.authenticateStatus = new AuthenticateStatus();
39
- this.httpPeer = new HttpPeer();
40
- this.httpPeer.initPeer();
41
- this.socketPeer = new SocketPeer();
42
- this.socketPeer.initPeer();
43
- }
44
- service() {
45
- if (this.httpPeer != null)
46
- this.httpPeer.service();
47
- if (this.socketPeer != null)
48
- this.socketPeer.service();
49
- }
50
- sendViaSocket(requestType, requestRole, request, onResponse = null, authToken = null, secretKey = null, customTags = null) {
51
- if (authToken == null)
52
- authToken = this.authenticateStatus.getAuthToken();
53
- if (secretKey == null) {
54
- if (requestRole == RequestRole.Admin)
55
- secretKey = GNNetwork.getGNServerSettings().getAdminSecretKey();
56
- else if (requestRole == RequestRole.Server)
57
- secretKey = GNNetwork.getGNServerSettings().getServerSecretKey();
58
- else if (requestRole == RequestRole.Client)
59
- secretKey = GNNetwork.getGNServerSettings().getClientSecretKey();
60
- }
61
- this.socketPeer.enqueue(requestType, requestRole, request, onResponse, authToken, secretKey, customTags, this.gameId);
62
- }
63
- sendViaHttp(requestType, requestRole, request, onResponse = null, authToken = null, secretKey = null, customTags = null) {
64
- if (authToken == null)
65
- authToken = this.authenticateStatus.getAuthToken();
66
- if (secretKey == null) {
67
- if (requestRole == RequestRole.Admin)
68
- secretKey = GNNetwork.getGNServerSettings().getAdminSecretKey();
69
- else if (requestRole == RequestRole.Server)
70
- secretKey = GNNetwork.getGNServerSettings().getServerSecretKey();
71
- else if (requestRole == RequestRole.Client)
72
- secretKey = GNNetwork.getGNServerSettings().getClientSecretKey();
73
- }
74
- this.httpPeer.enqueue(requestType, requestRole, request, onResponse, authToken, secretKey, customTags, this.gameId);
75
- }
76
- sendRequestAuthSocket() {
77
- this.socketPeer.sendRequestAuthSocket();
78
- }
79
- connectSocket(_onSocketConnect) {
80
- this.socketPeer.connect(_onSocketConnect);
81
- }
82
- disconnectSocket(_onSocketDisconnect) {
83
- this.socketPeer.disconnect(_onSocketDisconnect);
84
- }
85
- setOnEventHandler(_onEventHandler) {
86
- this.socketPeer.setOnEventHandler(_onEventHandler);
87
- }
88
- setOnConnectHandler(_onConnectHandler) {
89
- this.socketPeer.setOnConnectHandler(_onConnectHandler);
90
- }
91
- setOnDisconnectHandler(_onDisconnectHandler) {
92
- this.socketPeer.setOnDisconnectHandler(_onDisconnectHandler);
93
- }
94
- removeOnConnectHandler(_onConnectHandler) {
95
- this.socketPeer.removeOnConnectHandler(_onConnectHandler);
96
- }
97
- removeOnDisconnectHandler(_onDisconnectHandler) {
98
- this.socketPeer.removeOnDisconnectHandler(_onDisconnectHandler);
99
- }
100
- subscriberServerEventHandler(serverEventHandler) {
101
- this.socketPeer.subscriberAServerEventHandler(serverEventHandler);
102
- }
103
- syncTs(onResponse = null) {
104
- let thiz = this;
105
- this.httpPeer.getRequest(NetworkingPeer.SYNC_TS, (httpAppResponse) => {
106
- if (!httpAppResponse.hasError()) {
107
- if (httpAppResponse.statusCode == 200) {
108
- let returnDatas = JSON.parse(httpAppResponse.text);
109
- let gnArray = GNArray.builder()
110
- .addAll(returnDatas)
111
- .build();
112
- let returnCode = gnArray.getNumber(0);
113
- if (returnCode == ReturnCode.Ok) {
114
- let gnHashtable = gnArray.getGNHashtable(1);
115
- let newServerTimestamp = gnHashtable.getNumber("1", new Date().getUTCMilliseconds());
116
- thiz.setServerTimeMilliseconds(newServerTimestamp);
117
- }
118
- }
119
- }
120
- if (onResponse != null)
121
- onResponse(thiz.getServerTimestamp());
122
- });
123
- }
124
- }
125
- NetworkingPeer.SYNC_TS = "ts";
126
- NetworkingPeer.UPLOAD_FILE = "upload";
127
- NetworkingPeer.DOWNLOAD_FILE = "download";
128
- NetworkingPeer.API_JSON = "api/" + Commands.RequestCmd_Json;
129
- NetworkingPeer.API_MSG_PACK = "api/" + Commands.RequestCmd_MsgPack;
@@ -1,53 +0,0 @@
1
- import { OperationRequest } from "./../entity/OperationRequest";
2
- export class OperationPending {
3
- constructor(requestType, requestRole, operationRequest, onOperationResponse, authToken, secretKey, customTags, gameId) {
4
- this.operationRequest = operationRequest;
5
- this.onOperationResponse = onOperationResponse;
6
- this.timeout = Date.now() / 1000 + OperationRequest.defaultTimeOut;
7
- this.firstSend = 0;
8
- this.secondsSend = 0;
9
- this.requestType = requestType;
10
- this.requestRole = requestRole;
11
- this.authToken = authToken;
12
- this.secretKey = secretKey;
13
- this.gameId = gameId;
14
- this.customTags = customTags;
15
- }
16
- getRequestType() {
17
- return this.requestType;
18
- }
19
- getRequestRole() {
20
- return this.requestRole;
21
- }
22
- getAuthToken() {
23
- return this.authToken;
24
- }
25
- getSecretKey() {
26
- return this.secretKey;
27
- }
28
- getGameId() {
29
- return this.gameId;
30
- }
31
- getCustomTags() {
32
- return this.customTags;
33
- }
34
- onSend() {
35
- this.firstSend = Date.now() / 1000;
36
- this.timeout = this.firstSend + this.operationRequest.getTimeout();
37
- }
38
- onRecv() {
39
- this.secondsSend = Date.now() / 1000;
40
- }
41
- getExecuteTimerInMs() {
42
- return (this.secondsSend - this.firstSend);
43
- }
44
- isTimeout() {
45
- return this.timeout < Date.now() / 1000;
46
- }
47
- getOperationRequest() {
48
- return this.operationRequest;
49
- }
50
- getCallback() {
51
- return this.onOperationResponse;
52
- }
53
- }
@@ -1,168 +0,0 @@
1
- import { GNArray } from "./../common/GNData";
2
- import { ParameterCode } from "./../constant/parameterCode/ParameterCode";
3
- import { ReturnCode } from "./../constant/ReturnCode";
4
- import { OperationResponse } from "./../entity/OperationResponse";
5
- import { GNNetwork } from "./../GNNetwork";
6
- import { GNDebug } from "./../logger/GNDebug";
7
- import { OperationPending } from "./OperationPending";
8
- import store from "store";
9
- export class PeerBase {
10
- constructor() {
11
- this.perMsgTimer = 0;
12
- this.nextSendMsgTimer = 0;
13
- this.checkTimeoutOperationPending = 0;
14
- }
15
- getSendRate() {
16
- return (1000 / this.perMsgTimer);
17
- }
18
- setSendRate(sendRate) {
19
- this.perMsgTimer = 1000 / sendRate / 1000;
20
- }
21
- initPeer() {
22
- if (this.operationWaitingResponseDict == null)
23
- this.operationWaitingResponseDict = new Map();
24
- if (this.operationPendingQueue == null)
25
- this.operationPendingQueue = [];
26
- if (this.pingLst == null)
27
- this.pingLst = [];
28
- this.initSendRate();
29
- this.initGNSocketObject();
30
- }
31
- initSendRate() {
32
- let gnServerSettings = GNNetwork.getGNServerSettings();
33
- if (gnServerSettings == null)
34
- throw new Error("Null GN Server Settings, please find it now");
35
- this.setSendRate(gnServerSettings.getSendRate());
36
- }
37
- enqueue(requestType, requestRole, operationRequest, onOperationResponse, authToken, secretKey, customTags, gameId) {
38
- if (!this.isUsing) {
39
- GNDebug.logError("[GN] Server Settings dont setup to use this to send operation request.");
40
- return;
41
- }
42
- let operationPending = new OperationPending(requestType, requestRole, operationRequest, onOperationResponse, authToken, secretKey, customTags, gameId);
43
- this.operationPendingQueue.push(operationPending);
44
- }
45
- isUsing() {
46
- return this.isUse;
47
- }
48
- service() {
49
- if (!this.isUsing)
50
- return;
51
- let nowSecond = Date.now() / 1000;
52
- if (this.checkTimeoutOperationPending < nowSecond) {
53
- this.checkTimeoutOperationPending = nowSecond + 0.1;
54
- if (this.operationWaitingResponseDict.size != 0) {
55
- let gnArrayLst = [];
56
- this.operationWaitingResponseDict.forEach((operationPending, operationPendingKey) => {
57
- if (operationPending.isTimeout()) {
58
- let gnArray = new GNArray();
59
- gnArray.add(ReturnCode.OperationTimeout);
60
- gnArray.add(null);
61
- gnArray.add(operationPending.getOperationRequest().getRequestId());
62
- gnArray.add(operationPending.getOperationRequest().isEncrypted());
63
- gnArrayLst.push(gnArray);
64
- }
65
- });
66
- if (gnArrayLst.length != 0) {
67
- gnArrayLst.forEach(gnArray => {
68
- this.onResponseHandler(gnArray, gnArray.getBoolean(3));
69
- });
70
- }
71
- }
72
- }
73
- if (this.nextSendMsgTimer < nowSecond) {
74
- if (this.operationPendingQueue.length != 0) {
75
- this.nextSendMsgTimer = nowSecond + this.perMsgTimer;
76
- let operationPending = this.operationPendingQueue.shift();
77
- this.send(operationPending);
78
- }
79
- }
80
- }
81
- onResponseHandler(obj, isEncrypted) {
82
- let responseId = obj.getNumber(2);
83
- if (this.operationWaitingResponseDict.has(responseId)) {
84
- let operationPending = this.operationWaitingResponseDict.get(responseId);
85
- operationPending.onRecv();
86
- this.operationWaitingResponseDict.delete(responseId);
87
- let returnCode = obj.getNumber(0);
88
- let parameters = null;
89
- let debugMessage = null;
90
- let array = null;
91
- if (returnCode == ReturnCode.Ok)
92
- parameters = obj.getGNHashtable(1);
93
- else if (returnCode == ReturnCode.InvalidRequestParameters)
94
- array = obj.getGNArray(1);
95
- else if (returnCode == ReturnCode.OperationNotAuthorized) {
96
- }
97
- else
98
- debugMessage = obj.getString(1);
99
- let operationRequest = operationPending.getOperationRequest();
100
- let operationResponse = new OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), isEncrypted);
101
- operationResponse.setReturnCode(returnCode);
102
- operationResponse.setDebugMessage(debugMessage);
103
- operationResponse.setParameters(parameters);
104
- if (array != null) {
105
- let invalidMembers = [];
106
- for (let i = 0; i < array.count(); i++) {
107
- let arrChild = array.getGNArray(i);
108
- invalidMembers.push({
109
- code: arrChild.getString(0),
110
- invalidMemberType: arrChild.getNumber(1)
111
- });
112
- }
113
- operationResponse.setInvalidMembers(invalidMembers);
114
- }
115
- if (!operationResponse.hasError()) {
116
- this.addPing(operationPending.getExecuteTimerInMs());
117
- if (parameters != null) {
118
- if (parameters.containsKey(ParameterCode.AuthToken)) {
119
- let authToken = parameters.getString(ParameterCode.AuthToken);
120
- GNNetwork.getAuthenticateStatus().setAuthToken(authToken);
121
- store.set(GNNetwork.AUTH_TOKEN_KEY, authToken);
122
- }
123
- if (parameters.containsKey(ParameterCode.UserId)) {
124
- let userId = parameters.getString(ParameterCode.UserId);
125
- GNNetwork.getAuthenticateStatus().setUserId(userId);
126
- store.set(GNNetwork.USER_ID_KEY, userId);
127
- }
128
- if (parameters.containsKey(ParameterCode.Ts)) {
129
- GNNetwork.peer.setServerTimeMilliseconds(parameters.getNumber(ParameterCode.Ts, new Date().getUTCMilliseconds()));
130
- }
131
- }
132
- }
133
- GNDebug.log("[GN RECV] " + operationResponse.toString());
134
- let callback = operationPending.getCallback();
135
- if (callback != null)
136
- callback(operationResponse);
137
- }
138
- else {
139
- GNDebug.logError("[GN] OnResponseHandler, unavailable request id " + obj);
140
- }
141
- }
142
- send(operationPending) {
143
- operationPending.onSend();
144
- let operationRequest = operationPending.getOperationRequest();
145
- if (operationRequest.getRequestId() != -1) {
146
- operationRequest.setRequestId(PeerBase.requestId++);
147
- if (operationPending.getCallback() != null) {
148
- this.operationWaitingResponseDict.set(operationRequest.getRequestId(), operationPending);
149
- }
150
- }
151
- }
152
- addPing(value) {
153
- if (this.pingLst.length > 10)
154
- this.pingLst.shift();
155
- this.pingLst.push(value / 2);
156
- if (this.pingLst.length != 0) {
157
- let total = 0;
158
- for (let i = 0; i < this.pingLst.length; i++) {
159
- total += this.pingLst[i];
160
- }
161
- let average = total / this.pingLst.length;
162
- this.ping = (average * 1000);
163
- }
164
- else
165
- this.ping = -1;
166
- }
167
- }
168
- PeerBase.requestId = 0;