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

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 (108) hide show
  1. package/dist/gn.js.client.js +47666 -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 +34955 -314
  5. package/package.json +1 -1
  6. package/dist/runtime/GNNetwork.js +0 -238
  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 -1271
  13. package/dist/runtime/GNNetworkGroupApi.js +0 -983
  14. package/dist/runtime/GNNetworkInventoryApi.js +0 -839
  15. package/dist/runtime/GNNetworkMasterPlayerApi.js +0 -1927
  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 -214
  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/RequestRole.js +0 -6
  39. package/dist/runtime/constant/enumType/RequestType.js +0 -15
  40. package/dist/runtime/constant/errorCode/GNErrorCode.js +0 -49
  41. package/dist/runtime/constant/parameterCode/GNParameterCode.js +0 -542
  42. package/dist/runtime/constant/parameterCode/ParameterCode.js +0 -6
  43. package/dist/runtime/entity/DataMember.js +0 -208
  44. package/dist/runtime/entity/GNMetadata.js +0 -11
  45. package/dist/runtime/entity/InvalidMember.js +0 -1
  46. package/dist/runtime/entity/OperationEvent.js +0 -32
  47. package/dist/runtime/entity/OperationHelper.js +0 -23
  48. package/dist/runtime/entity/OperationRequest.js +0 -50
  49. package/dist/runtime/entity/OperationResponse.js +0 -81
  50. package/dist/runtime/entity/models/AuthenticateModels.js +0 -416
  51. package/dist/runtime/entity/models/AuthenticateRequestModels.js +0 -206
  52. package/dist/runtime/entity/models/AuthenticateResponseModels.js +0 -131
  53. package/dist/runtime/entity/models/CharacterPlayerModels.js +0 -1377
  54. package/dist/runtime/entity/models/CharacterPlayerRequestModels.js +0 -1412
  55. package/dist/runtime/entity/models/CharacterPlayerResponseModels.js +0 -369
  56. package/dist/runtime/entity/models/CloudScriptModels.js +0 -197
  57. package/dist/runtime/entity/models/CloudScriptRequestModels.js +0 -143
  58. package/dist/runtime/entity/models/CloudScriptResponseModels.js +0 -40
  59. package/dist/runtime/entity/models/ContentModels.js +0 -211
  60. package/dist/runtime/entity/models/ContentRequestModels.js +0 -197
  61. package/dist/runtime/entity/models/ContentResponseModels.js +0 -54
  62. package/dist/runtime/entity/models/DashboardModels.js +0 -2697
  63. package/dist/runtime/entity/models/DashboardRequestModels.js +0 -283
  64. package/dist/runtime/entity/models/DashboardResponseModels.js +0 -180
  65. package/dist/runtime/entity/models/GamePlayerModels.js +0 -1569
  66. package/dist/runtime/entity/models/GamePlayerRequestModels.js +0 -1412
  67. package/dist/runtime/entity/models/GamePlayerResponseModels.js +0 -369
  68. package/dist/runtime/entity/models/GenericModels.js +0 -177
  69. package/dist/runtime/entity/models/GroupModels.js +0 -1123
  70. package/dist/runtime/entity/models/GroupRequestModels.js +0 -1088
  71. package/dist/runtime/entity/models/GroupResponseModels.js +0 -285
  72. package/dist/runtime/entity/models/InventoryModels.js +0 -903
  73. package/dist/runtime/entity/models/InventoryRequestModels.js +0 -926
  74. package/dist/runtime/entity/models/InventoryResponseModels.js +0 -243
  75. package/dist/runtime/entity/models/MasterPlayerModels.js +0 -2371
  76. package/dist/runtime/entity/models/MasterPlayerRequestModels.js +0 -2152
  77. package/dist/runtime/entity/models/MasterPlayerResponseModels.js +0 -565
  78. package/dist/runtime/entity/models/MultiplayerModels.js +0 -404
  79. package/dist/runtime/entity/models/MultiplayerRequestModels.js +0 -278
  80. package/dist/runtime/entity/models/MultiplayerResponseModels.js +0 -75
  81. package/dist/runtime/entity/models/StoreInventoryModels.js +0 -737
  82. package/dist/runtime/entity/models/StoreInventoryRequestModels.js +0 -332
  83. package/dist/runtime/entity/models/StoreInventoryResponseModels.js +0 -89
  84. package/dist/runtime/entity/request/CustomOperationRequest.js +0 -24
  85. package/dist/runtime/entity/response/CustomOperationResponse.js +0 -29
  86. package/dist/runtime/helper/CodeHelper.js +0 -61
  87. package/dist/runtime/helper/ConverterService.js +0 -275
  88. package/dist/runtime/helper/GNSupport.js +0 -8
  89. package/dist/runtime/logger/GNDebug.js +0 -29
  90. package/dist/runtime/networking/AuthenticateStatus.js +0 -14
  91. package/dist/runtime/networking/IPeer.js +0 -1
  92. package/dist/runtime/networking/NetworkingPeer.js +0 -129
  93. package/dist/runtime/networking/OperationPending.js +0 -53
  94. package/dist/runtime/networking/PeerBase.js +0 -168
  95. package/dist/runtime/networking/handler/IServerEventHandler.js +0 -13
  96. package/dist/runtime/networking/handler/OnCharacterPlayerFriendUpdateEventHandler.js +0 -39
  97. package/dist/runtime/networking/handler/OnCharacterPlayerGroupUpdateEventHandler.js +0 -39
  98. package/dist/runtime/networking/handler/OnGamePlayerFriendUpdateEventHandler.js +0 -39
  99. package/dist/runtime/networking/handler/OnGamePlayerGroupUpdateEventHandler.js +0 -39
  100. package/dist/runtime/networking/handler/OnGroupMemberUpdateEventHandler.js +0 -35
  101. package/dist/runtime/networking/handler/OnGroupMessageUpdateEventHandler.js +0 -35
  102. package/dist/runtime/networking/http/HttpPeer.js +0 -121
  103. package/dist/runtime/networking/http/NetworkingHttpPeerBase.js +0 -6
  104. package/dist/runtime/networking/http/NetworkingPeerAxiosRequest.js +0 -146
  105. package/dist/runtime/networking/socket/NetworkingPeerSocketIOClient.js +0 -126
  106. package/dist/runtime/networking/socket/NetworkingSocketPeerBase.js +0 -176
  107. package/dist/runtime/networking/socket/SocketPeer.js +0 -105
  108. 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;