@xmobitea/gn-typescript-client 2.6.10 → 2.6.12-tsc

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 (121) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.js +339 -34189
  3. package/dist/runtime/GNNetwork.d.ts +3 -0
  4. package/dist/runtime/GNNetwork.js +260 -0
  5. package/dist/runtime/GNNetworkAuthenticateApi.js +122 -0
  6. package/dist/runtime/GNNetworkCharacterPlayerApi.js +968 -0
  7. package/dist/runtime/GNNetworkCloudScriptApi.js +104 -0
  8. package/dist/runtime/GNNetworkContentApi.js +140 -0
  9. package/dist/runtime/GNNetworkDashboardApi.js +170 -0
  10. package/dist/runtime/GNNetworkGamePlayerApi.js +950 -0
  11. package/dist/runtime/GNNetworkGroupApi.js +734 -0
  12. package/dist/runtime/GNNetworkInventoryApi.js +626 -0
  13. package/dist/runtime/GNNetworkMasterPlayerApi.js +1550 -0
  14. package/dist/runtime/GNNetworkMultiplayerApi.js +194 -0
  15. package/dist/runtime/GNNetworkStoreInventoryApi.js +266 -0
  16. package/dist/runtime/common/Action0.js +1 -0
  17. package/dist/runtime/common/Action1.js +1 -0
  18. package/dist/runtime/common/Action2.js +1 -0
  19. package/dist/runtime/common/Action3.js +1 -0
  20. package/dist/runtime/common/Action4.js +1 -0
  21. package/dist/runtime/common/GNData.js +211 -0
  22. package/dist/runtime/config/GNServerSettings.js +156 -0
  23. package/dist/runtime/constant/Commands.js +20 -0
  24. package/dist/runtime/constant/EventCode.js +8 -0
  25. package/dist/runtime/constant/OperationCode.js +221 -0
  26. package/dist/runtime/constant/ReturnCode.js +14 -0
  27. package/dist/runtime/constant/enumType/ExecuteResponseStatus.js +8 -0
  28. package/dist/runtime/constant/enumType/FriendStatus.js +7 -0
  29. package/dist/runtime/constant/enumType/GoogleLoginType.js +5 -0
  30. package/dist/runtime/constant/enumType/GroupStatus.js +7 -0
  31. package/dist/runtime/constant/enumType/InvalidMemberType.js +18 -0
  32. package/dist/runtime/constant/enumType/ItemType.js +5 -0
  33. package/dist/runtime/constant/enumType/MatchmakingMemberStatus.js +6 -0
  34. package/dist/runtime/constant/enumType/MatchmakingTicketStatus.js +8 -0
  35. package/dist/runtime/constant/enumType/OwnerType.js +9 -0
  36. package/dist/runtime/constant/enumType/PermissionDataItem.js +5 -0
  37. package/dist/runtime/constant/enumType/PushPlatformType.js +5 -0
  38. package/dist/runtime/constant/enumType/RequestRole.js +6 -0
  39. package/dist/runtime/constant/enumType/RequestType.js +15 -0
  40. package/dist/runtime/constant/enumType/StoreItemType.js +5 -0
  41. package/dist/runtime/constant/enumType/StoreReceiveType.js +8 -0
  42. package/dist/runtime/constant/errorCode/ErrorCode.js +52 -0
  43. package/dist/runtime/constant/parameterCode/ParameterCode.js +617 -0
  44. package/dist/runtime/entity/DataMember.js +208 -0
  45. package/dist/runtime/entity/GNMetadata.js +11 -0
  46. package/dist/runtime/entity/InvalidMember.js +1 -0
  47. package/dist/runtime/entity/OperationEvent.js +24 -0
  48. package/dist/runtime/entity/OperationHelper.js +24 -0
  49. package/dist/runtime/entity/OperationRequest.js +42 -0
  50. package/dist/runtime/entity/OperationResponse.js +73 -0
  51. package/dist/runtime/entity/models/AuthenticateModels.js +426 -0
  52. package/dist/runtime/entity/models/AuthenticateRequestModels.js +188 -0
  53. package/dist/runtime/entity/models/AuthenticateResponseModels.js +131 -0
  54. package/dist/runtime/entity/models/CharacterPlayerModels.js +1433 -0
  55. package/dist/runtime/entity/models/CharacterPlayerRequestModels.js +1386 -0
  56. package/dist/runtime/entity/models/CharacterPlayerResponseModels.js +376 -0
  57. package/dist/runtime/entity/models/CloudScriptModels.js +197 -0
  58. package/dist/runtime/entity/models/CloudScriptRequestModels.js +138 -0
  59. package/dist/runtime/entity/models/CloudScriptResponseModels.js +40 -0
  60. package/dist/runtime/entity/models/ContentModels.js +203 -0
  61. package/dist/runtime/entity/models/ContentRequestModels.js +190 -0
  62. package/dist/runtime/entity/models/ContentResponseModels.js +54 -0
  63. package/dist/runtime/entity/models/DashboardModels.js +3002 -0
  64. package/dist/runtime/entity/models/DashboardRequestModels.js +268 -0
  65. package/dist/runtime/entity/models/DashboardResponseModels.js +187 -0
  66. package/dist/runtime/entity/models/GamePlayerModels.js +1591 -0
  67. package/dist/runtime/entity/models/GamePlayerRequestModels.js +1360 -0
  68. package/dist/runtime/entity/models/GamePlayerResponseModels.js +369 -0
  69. package/dist/runtime/entity/models/GenericModels.js +177 -0
  70. package/dist/runtime/entity/models/GroupModels.js +1135 -0
  71. package/dist/runtime/entity/models/GroupRequestModels.js +1048 -0
  72. package/dist/runtime/entity/models/GroupResponseModels.js +285 -0
  73. package/dist/runtime/entity/models/InventoryModels.js +915 -0
  74. package/dist/runtime/entity/models/InventoryRequestModels.js +892 -0
  75. package/dist/runtime/entity/models/InventoryResponseModels.js +243 -0
  76. package/dist/runtime/entity/models/MasterPlayerModels.js +2573 -0
  77. package/dist/runtime/entity/models/MasterPlayerRequestModels.js +2228 -0
  78. package/dist/runtime/entity/models/MasterPlayerResponseModels.js +607 -0
  79. package/dist/runtime/entity/models/MultiplayerModels.js +404 -0
  80. package/dist/runtime/entity/models/MultiplayerRequestModels.js +268 -0
  81. package/dist/runtime/entity/models/MultiplayerResponseModels.js +75 -0
  82. package/dist/runtime/entity/models/StoreInventoryModels.js +797 -0
  83. package/dist/runtime/entity/models/StoreInventoryRequestModels.js +372 -0
  84. package/dist/runtime/entity/models/StoreInventoryResponseModels.js +103 -0
  85. package/dist/runtime/entity/request/CustomOperationRequest.js +24 -0
  86. package/dist/runtime/entity/response/CustomOperationResponse.js +29 -0
  87. package/dist/runtime/entity/response/GetAuthInfoResponse.js +2 -0
  88. package/dist/runtime/entity/response/HealthCheckResponse.d.ts +21 -0
  89. package/dist/runtime/entity/response/HealthCheckResponse.js +2 -0
  90. package/dist/runtime/entity/response/UploadFileResponse.js +2 -0
  91. package/dist/runtime/helper/CodeHelper.js +63 -0
  92. package/dist/runtime/helper/ConverterService.js +275 -0
  93. package/dist/runtime/helper/EnumUtility.js +33 -0
  94. package/dist/runtime/helper/GNSupport.js +8 -0
  95. package/dist/runtime/helper/GNUtils.js +72 -0
  96. package/dist/runtime/helper/MessagePackConverterService.js +9 -0
  97. package/dist/runtime/logger/GNDebug.js +29 -0
  98. package/dist/runtime/networking/AuthenticateStatus.js +14 -0
  99. package/dist/runtime/networking/IPeer.js +1 -0
  100. package/dist/runtime/networking/NetworkingPeer.d.ts +3 -0
  101. package/dist/runtime/networking/NetworkingPeer.js +208 -0
  102. package/dist/runtime/networking/OperationPending.js +53 -0
  103. package/dist/runtime/networking/PeerBase.js +161 -0
  104. package/dist/runtime/networking/handler/IServerEventHandler.js +13 -0
  105. package/dist/runtime/networking/handler/OnCharacterPlayerFriendUpdateEventHandler.js +39 -0
  106. package/dist/runtime/networking/handler/OnCharacterPlayerGroupUpdateEventHandler.js +39 -0
  107. package/dist/runtime/networking/handler/OnGamePlayerFriendUpdateEventHandler.js +39 -0
  108. package/dist/runtime/networking/handler/OnGamePlayerGroupUpdateEventHandler.js +39 -0
  109. package/dist/runtime/networking/handler/OnGroupMemberUpdateEventHandler.js +35 -0
  110. package/dist/runtime/networking/handler/OnGroupMessageUpdateEventHandler.js +43 -0
  111. package/dist/runtime/networking/http/HttpPeer.js +123 -0
  112. package/dist/runtime/networking/http/NetworkingHttpPeerBase.js +9 -0
  113. package/dist/runtime/networking/http/NetworkingPeerAxiosRequest.js +179 -0
  114. package/dist/runtime/networking/socket/NetworkingPeerSocketIOClient.js +130 -0
  115. package/dist/runtime/networking/socket/NetworkingSocketPeerBase.js +165 -0
  116. package/dist/runtime/networking/socket/SocketPeer.js +115 -0
  117. package/dist/runtime/typescript/ServiceUpdate.js +12 -0
  118. package/package.json +1 -1
  119. package/dist/gearn.js.client.js +0 -46911
  120. package/dist/gearn.js.client.min.js +0 -2
  121. package/dist/gearn.js.client.min.js.LICENSE.txt +0 -14
@@ -0,0 +1,179 @@
1
+ import axios from "axios";
2
+ import { GNHashtable } from "./../../common/GNData";
3
+ import { Commands } from "./../../constant/Commands";
4
+ import { GNSupport } from "./../../helper/GNSupport";
5
+ import { GNDebug } from "./../../logger/GNDebug";
6
+ import { HttpAppResponse, PostType } from "./HttpPeer";
7
+ import { NetworkingHttpPeerBase } from "./NetworkingHttpPeerBase";
8
+ import { ParameterCode } from "./../../constant/parameterCode/ParameterCode";
9
+ import { GNNetwork } from "./../../GNNetwork";
10
+ import { MessagePackConverterService } from "./../../helper/MessagePackConverterService";
11
+ export class NetworkingPeerAxiosRequest extends NetworkingHttpPeerBase {
12
+ getRequest(subUri, onHttpAppResponse, timeout, authToken, secretKey, gameId) {
13
+ this.getRequestAxios(subUri, onHttpAppResponse, timeout, authToken, secretKey, gameId);
14
+ }
15
+ postRequest(subUri, param, postType, onHttpAppResponse, timeout, authToken, secretKey, customTags, gameId) {
16
+ this.postRequestAxios(subUri, param, postType, onHttpAppResponse, timeout, authToken, secretKey, customTags, gameId);
17
+ }
18
+ postRequestUpload(subUri, content, filename, mimetype, onHttpAppResponse, timeout) {
19
+ //GNDebug.logWarning("GN JS client sdk does not support upload file yet.");
20
+ // let httpAppResponse = new HttpAppResponse();
21
+ // httpAppResponse.error = "Upload file does not support in GN JS client sdk.";
22
+ // httpAppResponse.statusCode = -1;
23
+ // httpAppResponse.text = "[-3]";
24
+ // if (onHttpAppResponse != null) onHttpAppResponse(httpAppResponse);
25
+ this.postRequestUploadAxios(subUri, content, filename, mimetype, onHttpAppResponse, timeout);
26
+ }
27
+ async getRequestAxios(subUri, onHttpAppResponse, timeout, authToken, secretKey, gameId) {
28
+ let headers = {};
29
+ if (authToken)
30
+ headers[Commands.RequestAuthTokenCmd] = authToken;
31
+ if (secretKey)
32
+ headers[Commands.RequestSecretCmd] = secretKey;
33
+ if (gameId)
34
+ headers[Commands.RequestGameIdCmd] = gameId;
35
+ if (!GNSupport.isBrowser())
36
+ headers[Commands.USER_AGENT] = this.userAgent;
37
+ let httpAppResponse = new HttpAppResponse();
38
+ let targetUrl = this.httpUrl + "/" + subUri;
39
+ if (this.useReverseProxy) {
40
+ targetUrl = "/" + subUri;
41
+ headers[Commands.BaseUrl] = this.httpUrl;
42
+ }
43
+ try {
44
+ let result = await axios.get(targetUrl, {
45
+ headers: headers,
46
+ timeout: timeout * 1000,
47
+ responseType: "arraybuffer",
48
+ });
49
+ httpAppResponse.statusCode = result.status;
50
+ let buffers = this.toBuffers(result.data);
51
+ httpAppResponse.data = buffers[0];
52
+ httpAppResponse.text = buffers[1];
53
+ }
54
+ catch (error) {
55
+ httpAppResponse.error = error.toString();
56
+ httpAppResponse.statusCode = -1;
57
+ httpAppResponse.text = "[-2]";
58
+ GNDebug.logError(error);
59
+ }
60
+ if (onHttpAppResponse != null)
61
+ onHttpAppResponse(httpAppResponse);
62
+ }
63
+ async postRequestAxios(subUri, param, postType, onHttpAppResponse, timeout, authToken, secretKey, customTags, gameId) {
64
+ let headers = {};
65
+ if (authToken)
66
+ headers[Commands.RequestAuthTokenCmd] = authToken;
67
+ if (secretKey)
68
+ headers[Commands.RequestSecretCmd] = secretKey;
69
+ if (gameId)
70
+ headers[Commands.RequestGameIdCmd] = gameId;
71
+ if (!GNSupport.isBrowser())
72
+ headers[Commands.USER_AGENT] = this.userAgent;
73
+ if (param == null)
74
+ param = new GNHashtable();
75
+ if (customTags != null)
76
+ param.add(ParameterCode.CustomTags, customTags);
77
+ let body = null;
78
+ if (postType == PostType.Json) {
79
+ let content = param.toData();
80
+ body = content;
81
+ if (!GNSupport.isBrowser()) {
82
+ headers[Commands.CONTENT_LENGTH] = JSON.stringify(body).length;
83
+ headers[Commands.CONTENT_TYPE] = Commands.APPLICATION_JSON;
84
+ }
85
+ headers[Commands.ACCEPT] = Commands.APPLICATION_JSON;
86
+ }
87
+ else if (postType == PostType.MsgPack) {
88
+ let content = param.toData();
89
+ body = Buffer.from(MessagePackConverterService.serialize(content));
90
+ headers[Commands.CONTENT_TYPE] = Commands.APPLICATION_MSGPACK;
91
+ headers[Commands.ACCEPT] = Commands.APPLICATION_MSGPACK;
92
+ if (!GNSupport.isBrowser())
93
+ headers[Commands.CONTENT_LENGTH] = body.length;
94
+ }
95
+ let httpAppResponse = new HttpAppResponse();
96
+ let targetUrl = this.httpUrl + "/" + subUri;
97
+ if (this.useReverseProxy) {
98
+ targetUrl = "/" + subUri;
99
+ headers[Commands.BaseUrl] = this.httpUrl;
100
+ }
101
+ try {
102
+ if (postType == PostType.Json) {
103
+ let result = await axios.post(targetUrl, body, {
104
+ headers: headers,
105
+ timeout: timeout * 1000,
106
+ responseType: "text",
107
+ });
108
+ httpAppResponse.statusCode = result.status;
109
+ // let buffers = this.toBuffers(result.data);
110
+ // httpAppResponse.data = buffers[0];
111
+ httpAppResponse.text = result.data;
112
+ }
113
+ else {
114
+ let result = await axios.post(targetUrl, body, {
115
+ headers: headers,
116
+ timeout: timeout * 1000,
117
+ responseType: "arraybuffer",
118
+ });
119
+ httpAppResponse.statusCode = result.status;
120
+ let buffers = this.toBuffers(result.data);
121
+ httpAppResponse.data = buffers[0];
122
+ httpAppResponse.text = buffers[1];
123
+ }
124
+ }
125
+ catch (error) {
126
+ httpAppResponse.error = error.toString();
127
+ httpAppResponse.statusCode = -1;
128
+ httpAppResponse.text = "[-2]";
129
+ GNDebug.logError(error);
130
+ }
131
+ if (onHttpAppResponse != null)
132
+ onHttpAppResponse(httpAppResponse);
133
+ }
134
+ async postRequestUploadAxios(subUri, content, filename, mimetype, onHttpAppResponse, timeout) {
135
+ let formData = new FormData();
136
+ formData.append(Commands.File, new Blob([content.buffer.slice(0)], { type: mimetype }), filename);
137
+ let headers = {};
138
+ headers[Commands.RequestAuthTokenCmd] = GNNetwork.getAuthenticateStatus().getAuthToken();
139
+ ;
140
+ // if (!GNSupport.isBrowser()) {
141
+ // headers[Commands.CONTENT_TYPE] = "multipart/form-data";
142
+ // }
143
+ let httpAppResponse = new HttpAppResponse();
144
+ let targetUrl = this.httpUrl + "/" + subUri;
145
+ if (this.useReverseProxy) {
146
+ targetUrl = "/" + subUri;
147
+ headers[Commands.BaseUrl] = this.httpUrl;
148
+ }
149
+ try {
150
+ let result = await axios.post(targetUrl, formData, {
151
+ headers: headers,
152
+ timeout: timeout * 1000,
153
+ responseType: "arraybuffer",
154
+ });
155
+ httpAppResponse.statusCode = result.status;
156
+ let buffers = this.toBuffers(result.data);
157
+ httpAppResponse.data = buffers[0];
158
+ httpAppResponse.text = buffers[1];
159
+ }
160
+ catch (error) {
161
+ httpAppResponse.error = error.toString();
162
+ httpAppResponse.statusCode = -1;
163
+ httpAppResponse.text = "[-2]";
164
+ GNDebug.logError(error);
165
+ }
166
+ if (onHttpAppResponse != null)
167
+ onHttpAppResponse(httpAppResponse);
168
+ }
169
+ uint8ArrayToString(uint8Array) {
170
+ return decodeURIComponent(escape(String.fromCharCode(...uint8Array)));
171
+ }
172
+ toBuffers(data) {
173
+ if (GNSupport.isBrowser()) {
174
+ data = new Uint8Array(data);
175
+ return [data, this.uint8ArrayToString(data)];
176
+ }
177
+ return [data, data.toString()];
178
+ }
179
+ }
@@ -0,0 +1,130 @@
1
+ import { Commands } from "./../../constant/Commands";
2
+ import { GNDebug } from "./../../logger/GNDebug";
3
+ import { NetworkingSocketPeerBase, SocketPacket } from "./NetworkingSocketPeerBase";
4
+ import { GNNetwork } from "./../../GNNetwork";
5
+ import { OperationHelper } from "./../../entity/OperationHelper";
6
+ import { Manager } from "socket.io-client";
7
+ import { ParameterCode } from "./../../constant/parameterCode/ParameterCode";
8
+ import { MessagePackConverterService } from "./../../helper/MessagePackConverterService";
9
+ import { MessageType } from "./../../config/GNServerSettings";
10
+ export class NetworkingPeerSocketIOClient extends NetworkingSocketPeerBase {
11
+ sendRequestAuthSocket() {
12
+ super.sendRequestAuthSocket();
13
+ if (this.clientId) {
14
+ this.socketManager.socket("/").emit(Commands.RequestAuthTokenCmd, GNNetwork.getAuthenticateStatus().getAuthToken());
15
+ }
16
+ ;
17
+ }
18
+ reInitNewSocket() {
19
+ super.reInitNewSocket();
20
+ if (this.socketManager == null) {
21
+ const url = new URL(this.url);
22
+ this.socketManager = new Manager(url.origin, {
23
+ path: url.pathname + "socket.io",
24
+ reconnection: true,
25
+ reconnectionDelay: this.reconnectDelay,
26
+ timeout: this.pingTimeout,
27
+ autoConnect: false,
28
+ transports: ["websocket"]
29
+ });
30
+ let socket = this.socketManager.socket("/");
31
+ socket.on("connect", () => {
32
+ this.onConnect();
33
+ });
34
+ socket.on("disconnect", () => {
35
+ this.onDisconnect();
36
+ });
37
+ socket.on("error", (error) => {
38
+ this.onError(error);
39
+ });
40
+ socket.on(Commands.ResponseCmd_MsgPack, (args) => {
41
+ this.onResponseMsgPack(args);
42
+ });
43
+ socket.on(Commands.EventCmd_MsgPack, (args) => {
44
+ this.onEventMsgPack(args);
45
+ });
46
+ socket.on(Commands.ResponseCmd_Json, (args) => {
47
+ this.onResponseJson(args);
48
+ });
49
+ socket.on(Commands.EventCmd_Json, (args) => {
50
+ this.onEventJson(args);
51
+ });
52
+ this.socket = socket;
53
+ }
54
+ }
55
+ onResponseMsgPack(...args) {
56
+ this.responsePacketLst.push(new SocketPacket(args[0], true));
57
+ }
58
+ onEventMsgPack(...args) {
59
+ this.eventPacketLst.push(new SocketPacket(args[0], true));
60
+ }
61
+ onResponseJson(...args) {
62
+ this.responsePacketLst.push(new SocketPacket(args[0], false));
63
+ }
64
+ onEventJson(...args) {
65
+ this.eventPacketLst.push(new SocketPacket(args[0], false));
66
+ }
67
+ onConnect() {
68
+ GNDebug.log("[GN Socket RECV] HandleOpen " + this.socket.id);
69
+ this.clientId = this.socket.id;
70
+ this.onConnectHandler();
71
+ }
72
+ onDisconnect() {
73
+ GNDebug.log("[GN Socket RECV] HandleClose ");
74
+ this.clientId = "";
75
+ this.onDisconnectHandler();
76
+ }
77
+ onError(error) {
78
+ GNDebug.logError(error);
79
+ }
80
+ init(url, reconnectDelay, pingInterval, pingTimeout) {
81
+ super.init(url, reconnectDelay, pingInterval, pingTimeout);
82
+ }
83
+ emit(requestType, role, operationRequest, authToken, secretKey, customTags, gameId) {
84
+ super.emit(requestType, role, operationRequest, authToken, secretKey, customTags, gameId);
85
+ if (this.socketManager == null) {
86
+ // callback here
87
+ return;
88
+ }
89
+ let socket = this.socketManager.socket("/");
90
+ if (socket == null) {
91
+ // callback here
92
+ return;
93
+ }
94
+ if (customTags != null)
95
+ operationRequest.setParameter(ParameterCode.CustomTags, customTags);
96
+ let dataSend = OperationHelper.toSocketData(requestType, role, operationRequest);
97
+ let gnServerSettings = GNNetwork.getGNServerSettings();
98
+ if (gnServerSettings.getMessageType() == MessageType.Json)
99
+ socket.emit(Commands.RequestCmd_Json, dataSend);
100
+ else
101
+ socket.emit(Commands.RequestCmd_MsgPack, MessagePackConverterService.serialize(dataSend));
102
+ }
103
+ close(_onSocketDisconnect) {
104
+ super.close(_onSocketDisconnect);
105
+ this.isConnected = false;
106
+ if (this.socketManager != null) {
107
+ if (this.socketManager._readyState != "closed") {
108
+ this.socketManager._close();
109
+ return;
110
+ }
111
+ }
112
+ if (this.socket != null)
113
+ this.socket.disconnect();
114
+ GNDebug.log("[GN Socket] Disconnecting via SocketIO client");
115
+ this.onDisconnectHandler();
116
+ }
117
+ connect(_onSocketConnect) {
118
+ super.connect(_onSocketConnect);
119
+ if (this.isConnected) {
120
+ GNDebug.log("[GN Socket] Reconnecting");
121
+ return;
122
+ }
123
+ this.isConnected = true;
124
+ GNDebug.log("[GN Socket] Connecting via SocketIO client");
125
+ if (this.socketManager != null)
126
+ this.socketManager.open();
127
+ if (this.socket != null)
128
+ this.socket.connect();
129
+ }
130
+ }
@@ -0,0 +1,165 @@
1
+ import { MessagePackConverterService } from "./../../helper/MessagePackConverterService";
2
+ import { GNHashtable } from "./../../common/GNData";
3
+ import { GNNetwork } from "./../../GNNetwork";
4
+ import { GNDebug } from "./../../logger/GNDebug";
5
+ export class SocketPacket {
6
+ constructor(obj, isMsgPack) {
7
+ this.obj = obj;
8
+ this.isMsgPack = isMsgPack;
9
+ }
10
+ }
11
+ class Action0List {
12
+ subscriber(action) {
13
+ this.handlers.push(action);
14
+ }
15
+ unsubscriber(action) {
16
+ let indexOf = this.handlers.indexOf(action);
17
+ if (indexOf != -1)
18
+ this.handlers.splice(indexOf, 1);
19
+ }
20
+ invoke() {
21
+ this.handlers.forEach((a) => {
22
+ if (a != null)
23
+ a();
24
+ });
25
+ }
26
+ constructor() {
27
+ this.handlers = [];
28
+ }
29
+ }
30
+ export class NetworkingSocketPeerBase {
31
+ constructor() {
32
+ this.clientId = "";
33
+ this._onConnectHandler = new Action0List();
34
+ this._onDisconnectHandler = new Action0List();
35
+ }
36
+ init(url, reconnectDelay, pingInterval, pingTimeout) {
37
+ this.responsePacketLst = [];
38
+ this.eventPacketLst = [];
39
+ this.url = url;
40
+ this.reconnectDelay = reconnectDelay;
41
+ this.pingInterval = pingInterval;
42
+ this.pingTimeout = pingTimeout;
43
+ }
44
+ connect(_onSocketConnect) {
45
+ this._onSocketConnect = _onSocketConnect;
46
+ }
47
+ close(_onSocketDisconnect) {
48
+ this._onSocketDisconnect = _onSocketDisconnect;
49
+ }
50
+ sendRequestAuthSocket() {
51
+ }
52
+ send(requestType, role, operationRequest, authToken, secretKey, customTags, gameId) {
53
+ this.emit(requestType, role, operationRequest, authToken, secretKey, customTags, gameId);
54
+ }
55
+ emit(requestType, role, operationRequest, authToken, secretKey, customTags, gameId) {
56
+ }
57
+ reInitNewSocket() {
58
+ }
59
+ setOnConnectHandler(_onConnectHandler) {
60
+ this._onConnectHandler.subscriber(_onConnectHandler);
61
+ }
62
+ setOnDisconnectHandler(_onDisconnectHandler) {
63
+ this._onDisconnectHandler.subscriber(_onDisconnectHandler);
64
+ }
65
+ removeOnConnectHandler(_onConnectHandler) {
66
+ this._onConnectHandler.unsubscriber(_onConnectHandler);
67
+ }
68
+ removeOnDisconnectHandler(_onDisconnectHandler) {
69
+ this._onDisconnectHandler.unsubscriber(_onDisconnectHandler);
70
+ }
71
+ onConnectHandler() {
72
+ this._onConnectHandler.invoke();
73
+ let authToken = GNNetwork.getAuthenticateStatus().getAuthToken();
74
+ if (authToken != null) {
75
+ this.sendRequestAuthSocket();
76
+ }
77
+ if (this._onSocketConnect != null) {
78
+ this._onSocketConnect();
79
+ this._onSocketConnect = null;
80
+ }
81
+ }
82
+ onDisconnectHandler() {
83
+ this._onDisconnectHandler.invoke();
84
+ if (this._onSocketDisconnect != null) {
85
+ this._onSocketDisconnect();
86
+ this._onSocketDisconnect = null;
87
+ }
88
+ }
89
+ setOnEventHandler(_onEventHandler) {
90
+ this._onEventHandler = _onEventHandler;
91
+ }
92
+ onEventHandler(obj) {
93
+ if (this._onEventHandler != null)
94
+ this._onEventHandler(obj);
95
+ }
96
+ setOnResponseHandler(_onResponseHandler) {
97
+ this._onResponseHandler = _onResponseHandler;
98
+ }
99
+ onResponseHandler(obj) {
100
+ if (this._onResponseHandler != null)
101
+ this._onResponseHandler(obj);
102
+ }
103
+ service() {
104
+ if (this.responsePacketLst.length > 0) {
105
+ for (let i = 0; i < this.responsePacketLst.length; i++) {
106
+ let responsePacket = this.responsePacketLst[i];
107
+ if (responsePacket.isMsgPack) {
108
+ try {
109
+ let iDict = MessagePackConverterService.deserialize(responsePacket.obj);
110
+ let gnHashtable = GNHashtable.builder()
111
+ .addAll(iDict)
112
+ .build();
113
+ this.onResponseHandler(gnHashtable);
114
+ }
115
+ catch (ex) {
116
+ GNDebug.logException(ex);
117
+ }
118
+ }
119
+ else {
120
+ try {
121
+ let iDict = responsePacket.obj;
122
+ let gnHashtable = GNHashtable.builder()
123
+ .addAll(iDict)
124
+ .build();
125
+ this.onResponseHandler(gnHashtable);
126
+ }
127
+ catch (ex) {
128
+ GNDebug.logException(ex);
129
+ }
130
+ }
131
+ }
132
+ this.responsePacketLst.length = 0;
133
+ }
134
+ if (this.eventPacketLst.length > 0) {
135
+ for (let i = 0; i < this.eventPacketLst.length; i++) {
136
+ let eventPacket = this.eventPacketLst[i];
137
+ if (eventPacket.isMsgPack) {
138
+ try {
139
+ let iDict = MessagePackConverterService.deserialize(eventPacket.obj);
140
+ let gnHashtable = GNHashtable.builder()
141
+ .addAll(iDict)
142
+ .build();
143
+ this.onEventHandler(gnHashtable);
144
+ }
145
+ catch (ex) {
146
+ GNDebug.logException(ex);
147
+ }
148
+ }
149
+ else {
150
+ try {
151
+ let iDict = eventPacket.obj;
152
+ let gnHashtable = GNHashtable.builder()
153
+ .addAll(iDict)
154
+ .build();
155
+ this.onEventHandler(gnHashtable);
156
+ }
157
+ catch (ex) {
158
+ GNDebug.logException(ex);
159
+ }
160
+ }
161
+ }
162
+ this.eventPacketLst.length = 0;
163
+ }
164
+ }
165
+ }
@@ -0,0 +1,115 @@
1
+ import { OperationEvent } from "./../../entity/OperationEvent";
2
+ import { GNNetwork } from "./../../GNNetwork";
3
+ import { GNDebug } from "./../../logger/GNDebug";
4
+ import { IServerEventHandler } from "./../handler/IServerEventHandler";
5
+ import { NetworkingPeerSocketIOClient } from "./NetworkingPeerSocketIOClient";
6
+ import { PeerBase } from "./../PeerBase";
7
+ import { ParameterCode } from "./../../constant/parameterCode/ParameterCode";
8
+ import { OperationRequest } from "./../../entity/OperationRequest";
9
+ export class SocketPeer extends PeerBase {
10
+ getClientId() {
11
+ return this.networkingSocketPeerBase.clientId;
12
+ }
13
+ isConnected() {
14
+ return this.networkingSocketPeerBase.isWsConnected;
15
+ }
16
+ sendRequestAuthSocket() {
17
+ this.networkingSocketPeerBase.sendRequestAuthSocket();
18
+ }
19
+ subscriberServerEventHandler() {
20
+ this.serverEventHandlersDict = {};
21
+ let serverEventHandlers = IServerEventHandler.getImplementations();
22
+ for (let i = 0; i < serverEventHandlers.length; i++) {
23
+ let serverEventHandler = new serverEventHandlers[i]();
24
+ if (serverEventHandler != null) {
25
+ let serverEventHandlers2 = this.serverEventHandlersDict[serverEventHandler.getEventCode()];
26
+ if (serverEventHandlers2 == null) {
27
+ serverEventHandlers2 = [];
28
+ this.serverEventHandlersDict[serverEventHandler.getEventCode()] = serverEventHandlers2;
29
+ }
30
+ serverEventHandlers2.push(serverEventHandler);
31
+ }
32
+ }
33
+ }
34
+ subscriberAServerEventHandler(serverEventHandler) {
35
+ let serverEventHandlers2 = this.serverEventHandlersDict[serverEventHandler.getEventCode()];
36
+ if (serverEventHandlers2 == null) {
37
+ serverEventHandlers2 = [];
38
+ this.serverEventHandlersDict[serverEventHandler.getEventCode()] = serverEventHandlers2;
39
+ }
40
+ serverEventHandlers2.push(serverEventHandler);
41
+ }
42
+ initGNSocketObject() {
43
+ let gnServerSettings = GNNetwork.getGNServerSettings();
44
+ if (gnServerSettings == null)
45
+ throw new Error("Where is GN Server Settings");
46
+ this.isUse = gnServerSettings.isUseSocket();
47
+ this.networkingSocketPeerBase = new NetworkingPeerSocketIOClient();
48
+ this.networkingSocketPeerBase.init(gnServerSettings.getSocketUrl(), gnServerSettings.getReconnectDelay(), gnServerSettings.getPingInterval(), gnServerSettings.getPingTimeout());
49
+ this.networkingSocketPeerBase.reInitNewSocket();
50
+ let thiz = this;
51
+ this.networkingSocketPeerBase.setOnEventHandler((t1) => {
52
+ thiz.onEventHandler(t1);
53
+ });
54
+ this.networkingSocketPeerBase.setOnResponseHandler((t1) => {
55
+ thiz.onResponseHandler(t1);
56
+ });
57
+ this.subscriberServerEventHandler();
58
+ }
59
+ setOnConnectHandler(_onConnectHandler) {
60
+ this.networkingSocketPeerBase.setOnConnectHandler(_onConnectHandler);
61
+ }
62
+ setOnDisconnectHandler(_onDisconnectHandler) {
63
+ this.networkingSocketPeerBase.setOnDisconnectHandler(_onDisconnectHandler);
64
+ }
65
+ removeOnConnectHandler(_onConnectHandler) {
66
+ this.networkingSocketPeerBase.removeOnConnectHandler(_onConnectHandler);
67
+ }
68
+ removeOnDisconnectHandler(_onDisconnectHandler) {
69
+ this.networkingSocketPeerBase.removeOnDisconnectHandler(_onDisconnectHandler);
70
+ }
71
+ connect(_onSocketConnect) {
72
+ this.networkingSocketPeerBase.connect(_onSocketConnect);
73
+ }
74
+ disconnect(_onSocketDisconnect) {
75
+ this.networkingSocketPeerBase.close(_onSocketDisconnect);
76
+ }
77
+ setOnEventHandler(_onEventHandler) {
78
+ this._onEventHandler = _onEventHandler;
79
+ }
80
+ send(operationPending) {
81
+ let gnServerSettings = GNNetwork.getGNServerSettings();
82
+ let operationRequest = operationPending.getOperationRequest();
83
+ if (operationRequest.getTimeout() == OperationRequest.defaultTimeOut)
84
+ operationRequest.setTimeout(gnServerSettings.getDefaultTimeoutInSeconds());
85
+ super.send(operationPending);
86
+ GNDebug.log("[GN Socket SEND] " + operationPending.getOperationRequest().toString());
87
+ let authToken = operationPending.getAuthToken();
88
+ let secretKey = operationPending.getSecretKey();
89
+ let gameId = operationPending.getGameId();
90
+ let customTags = operationPending.getCustomTags();
91
+ this.networkingSocketPeerBase.send(operationPending.getRequestType(), operationPending.getRole(), operationPending.getOperationRequest(), authToken, secretKey, customTags, gameId);
92
+ }
93
+ onEnqueue(operationPending) {
94
+ GNDebug.log("[GN Socket ENQUEUE] " + operationPending.getOperationRequest().toString());
95
+ }
96
+ onEventHandler(obj) {
97
+ let eventCode = obj.getString(ParameterCode.EventCode);
98
+ let operationEvent = new OperationEvent(eventCode, obj.getGNHashtable(ParameterCode.Parameters));
99
+ GNDebug.log("[GN Socket EVENT] " + operationEvent.toString());
100
+ if (this._onEventHandler != null)
101
+ this._onEventHandler(operationEvent);
102
+ let serverEventHandlers = this.serverEventHandlersDict[eventCode];
103
+ if (serverEventHandlers == null)
104
+ return;
105
+ serverEventHandlers.forEach(serverEventHandler => {
106
+ if (serverEventHandler != null) {
107
+ serverEventHandler.handle(operationEvent);
108
+ }
109
+ });
110
+ }
111
+ service() {
112
+ super.service();
113
+ this.networkingSocketPeerBase.service();
114
+ }
115
+ }
@@ -0,0 +1,12 @@
1
+ export class ServiceUpdate {
2
+ run() {
3
+ let thiz = this;
4
+ setInterval(() => {
5
+ thiz.update();
6
+ }, 50);
7
+ }
8
+ update() {
9
+ if (this.peer != null)
10
+ this.peer.service();
11
+ }
12
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmobitea/gn-typescript-client",
3
- "version": "2.6.10",
3
+ "version": "2.6.12-tsc",
4
4
  "description": "GearN Typescript Client SDK by XmobiTea (Pro)",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",