@cimo/websocket 1.1.22 → 1.1.24
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.
- package/README.md +2 -2
- package/dist/client/Interface.d.ts +4 -0
- package/dist/client/Service.d.ts +1 -1
- package/dist/client/Service.js +8 -4
- package/dist/client/Service.js.map +1 -1
- package/dist/server/Service.d.ts +3 -1
- package/dist/server/Service.js +10 -1
- package/dist/server/Service.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ import * as ControllerTest from "../controller/Test";
|
|
|
27
27
|
...
|
|
28
28
|
|
|
29
29
|
const cwsServer = new CwsServer();
|
|
30
|
-
cwsServer.create(server);
|
|
30
|
+
cwsServer.create(server, 15000);
|
|
31
31
|
|
|
32
32
|
cwsServer.receiveOutput("test", (socket, data) => {
|
|
33
33
|
ControllerTest.websocket(cwsServer, socket, data);
|
|
@@ -75,7 +75,7 @@ import CwsClient from "@cimo/websocket/dist/client/Service";
|
|
|
75
75
|
...
|
|
76
76
|
|
|
77
77
|
const cwsClient = CwsClient();
|
|
78
|
-
cwsClient.connection(
|
|
78
|
+
cwsClient.connection("wss://localhost");
|
|
79
79
|
|
|
80
80
|
cwsClient.receiveMessage("broadcast", (data) => {
|
|
81
81
|
// Global event
|
package/dist/client/Service.d.ts
CHANGED
package/dist/client/Service.js
CHANGED
|
@@ -6,8 +6,11 @@ class CwsClient {
|
|
|
6
6
|
this.serverAddress = address ? address : this.serverAddress;
|
|
7
7
|
this.websocket = new WebSocket(this.serverAddress);
|
|
8
8
|
this.websocket.addEventListener("open", this.eventOpen);
|
|
9
|
-
this.websocket.addEventListener("message", this.
|
|
9
|
+
this.websocket.addEventListener("message", this.eventReceiveMessageHandle);
|
|
10
10
|
this.websocket.addEventListener("close", this.eventClose);
|
|
11
|
+
this.receiveMessage("ping", () => {
|
|
12
|
+
this.sendMessage("pong", "ok");
|
|
13
|
+
});
|
|
11
14
|
};
|
|
12
15
|
this.sendMessage = (tagValue, messageValue) => {
|
|
13
16
|
const check = this.checkConnection();
|
|
@@ -17,7 +20,8 @@ class CwsClient {
|
|
|
17
20
|
tag: `cws_${tagValue}_o`,
|
|
18
21
|
message: messageValue
|
|
19
22
|
};
|
|
20
|
-
|
|
23
|
+
const result = JSON.stringify(dataStructure);
|
|
24
|
+
this.websocket.send(result);
|
|
21
25
|
}
|
|
22
26
|
};
|
|
23
27
|
this.receiveMessage = (tag, callback) => {
|
|
@@ -42,7 +46,7 @@ class CwsClient {
|
|
|
42
46
|
console.log("@cimo/websocket - Service.ts - eventOpen():", "Connected.");
|
|
43
47
|
clearTimeout(this.timeoutReconnect);
|
|
44
48
|
};
|
|
45
|
-
this.
|
|
49
|
+
this.eventReceiveMessageHandle = (event) => {
|
|
46
50
|
const data = JSON.parse(event.data);
|
|
47
51
|
for (const [tag, callback] of this.receiveMessageHandleList) {
|
|
48
52
|
if (tag === data.tag) {
|
|
@@ -55,7 +59,7 @@ class CwsClient {
|
|
|
55
59
|
if (this.websocket) {
|
|
56
60
|
console.log("@cimo/websocket - Service.ts - eventClose():", "Disconnected. Try to reconnect...");
|
|
57
61
|
this.websocket.removeEventListener("open", this.eventOpen);
|
|
58
|
-
this.websocket.removeEventListener("message", this.
|
|
62
|
+
this.websocket.removeEventListener("message", this.eventReceiveMessageHandle);
|
|
59
63
|
this.websocket.removeEventListener("close", this.eventClose);
|
|
60
64
|
this.websocket = null;
|
|
61
65
|
this.timeoutReconnect = setTimeout(this.connection, 1000);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/client/Service.ts"],"names":[],"mappings":";;AAGA,MAAqB,SAAS;
|
|
1
|
+
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/client/Service.ts"],"names":[],"mappings":"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"}
|
package/dist/server/Service.d.ts
CHANGED
|
@@ -7,8 +7,10 @@ export default class CwsServer {
|
|
|
7
7
|
private MASK_KEY_BYTES_LENGTH;
|
|
8
8
|
private socketList;
|
|
9
9
|
private receiveOutputHandleList;
|
|
10
|
+
private pingTime;
|
|
11
|
+
private pingInterval;
|
|
10
12
|
constructor();
|
|
11
|
-
create: (server: Interface.IhttpsServer) => void;
|
|
13
|
+
create: (server: Interface.IhttpsServer, pingTime?: number) => void;
|
|
12
14
|
receiveOutput: (tag: string, callback: Interface.IcallbackReceiveOutput) => void;
|
|
13
15
|
receiveOutputOff: (tag: string) => void;
|
|
14
16
|
sendInput: (socket: Interface.Isocket | null, tagValue: string, messageValue: string | Record<string, unknown>) => void;
|
package/dist/server/Service.js
CHANGED
|
@@ -32,6 +32,8 @@ class CwsServer {
|
|
|
32
32
|
MASK_KEY_BYTES_LENGTH;
|
|
33
33
|
socketList;
|
|
34
34
|
receiveOutputHandleList;
|
|
35
|
+
pingTime;
|
|
36
|
+
pingInterval;
|
|
35
37
|
constructor() {
|
|
36
38
|
this.WEBSOCKET_MAGIC_STRING_KEY = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
|
|
37
39
|
this.SEVEN_BITS_INTEGER_MARKER = 125;
|
|
@@ -40,8 +42,11 @@ class CwsServer {
|
|
|
40
42
|
this.MASK_KEY_BYTES_LENGTH = 4;
|
|
41
43
|
this.socketList = [];
|
|
42
44
|
this.receiveOutputHandleList = new Map();
|
|
45
|
+
this.pingTime = 3000;
|
|
46
|
+
this.pingInterval = undefined;
|
|
43
47
|
}
|
|
44
|
-
create = (server) => {
|
|
48
|
+
create = (server, pingTime) => {
|
|
49
|
+
this.pingTime = pingTime ? pingTime : this.pingTime;
|
|
45
50
|
server.on("upgrade", this.onServerUpgrade);
|
|
46
51
|
};
|
|
47
52
|
receiveOutput = (tag, callback) => {
|
|
@@ -97,6 +102,9 @@ class CwsServer {
|
|
|
97
102
|
this.onSocketEnd(socket);
|
|
98
103
|
});
|
|
99
104
|
this.sendInputBroadcast(socket, "broadcast", `Client ${socket.remoteAddress || ""} connected.`);
|
|
105
|
+
this.pingInterval = setInterval(() => {
|
|
106
|
+
this.sendInput(socket, "ping", "ok");
|
|
107
|
+
}, this.pingTime);
|
|
100
108
|
};
|
|
101
109
|
onSocketData = (socket, buffer) => {
|
|
102
110
|
let data = {};
|
|
@@ -133,6 +141,7 @@ class CwsServer {
|
|
|
133
141
|
};
|
|
134
142
|
onSocketEnd = (socket) => {
|
|
135
143
|
this.sendInputBroadcast(socket, "broadcast", `Client ${socket.remoteAddress || ""} disconnected.`);
|
|
144
|
+
clearInterval(this.pingInterval);
|
|
136
145
|
const index = this.socketList.indexOf(socket);
|
|
137
146
|
if (index > -1) {
|
|
138
147
|
this.socketList.splice(index, 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/server/Service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAKjC,MAAqB,SAAS;IAClB,0BAA0B,CAAS;IACnC,yBAAyB,CAAS;IAClC,2BAA2B,CAAS;IACpC,6BAA6B,CAAS;IACtC,qBAAqB,CAAS;IAE9B,UAAU,CAAsB;IAChC,uBAAuB,CAA6E;
|
|
1
|
+
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/server/Service.ts"],"names":[],"mappings":"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"}
|