@push.rocks/smartsocket 2.1.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_bundle/bundle.js +2476 -4455
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/interfaces/index.d.ts +1 -0
- package/dist_ts/interfaces/index.js +2 -1
- package/dist_ts/interfaces/message.d.ts +55 -0
- package/dist_ts/interfaces/message.js +2 -0
- package/dist_ts/smartsocket.classes.smartsocket.d.ts +10 -6
- package/dist_ts/smartsocket.classes.smartsocket.js +43 -39
- package/dist_ts/smartsocket.classes.smartsocketclient.d.ts +3 -0
- package/dist_ts/smartsocket.classes.smartsocketclient.js +114 -75
- package/dist_ts/smartsocket.classes.socketconnection.d.ts +15 -4
- package/dist_ts/smartsocket.classes.socketconnection.js +139 -62
- package/dist_ts/smartsocket.classes.socketrequest.js +18 -12
- package/dist_ts/smartsocket.classes.socketserver.d.ts +15 -13
- package/dist_ts/smartsocket.classes.socketserver.js +152 -45
- package/dist_ts/smartsocket.pluginstyped.d.ts +32 -11
- package/package.json +24 -25
- package/readme.md +216 -74
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/interfaces/index.ts +1 -0
- package/ts/interfaces/message.ts +67 -0
- package/ts/smartsocket.classes.smartsocket.ts +47 -40
- package/ts/smartsocket.classes.smartsocketclient.ts +142 -90
- package/ts/smartsocket.classes.socketconnection.ts +161 -74
- package/ts/smartsocket.classes.socketrequest.ts +18 -11
- package/ts/smartsocket.classes.socketserver.ts +161 -52
- package/ts/smartsocket.pluginstyped.ts +35 -12
|
@@ -28,16 +28,83 @@ export class SocketConnection {
|
|
|
28
28
|
this.socket = optionsArg.socket;
|
|
29
29
|
// standard behaviour that is always true
|
|
30
30
|
allSocketConnections.add(this);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Sends a message through the socket
|
|
34
|
+
*/
|
|
35
|
+
sendMessage(message) {
|
|
36
|
+
if (this.socket.readyState === 1) { // WebSocket.OPEN
|
|
37
|
+
this.socket.send(JSON.stringify(message));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Handles incoming messages
|
|
42
|
+
*/
|
|
43
|
+
handleMessage(messageData) {
|
|
44
|
+
switch (messageData.type) {
|
|
45
|
+
case 'function':
|
|
46
|
+
this.handleFunctionCall(messageData);
|
|
47
|
+
break;
|
|
48
|
+
case 'functionResponse':
|
|
49
|
+
this.handleFunctionResponse(messageData);
|
|
50
|
+
break;
|
|
51
|
+
case 'tagUpdate':
|
|
52
|
+
this.handleTagUpdate(messageData);
|
|
53
|
+
break;
|
|
54
|
+
default:
|
|
55
|
+
// Authentication messages are handled by the server/client classes
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
handleFunctionCall(messageData) {
|
|
60
|
+
const requestData = {
|
|
61
|
+
funcCallData: {
|
|
62
|
+
funcName: messageData.payload.funcName,
|
|
63
|
+
funcDataArg: messageData.payload.funcData,
|
|
64
|
+
},
|
|
65
|
+
shortId: messageData.id,
|
|
66
|
+
};
|
|
67
|
+
const referencedFunction = this.smartsocketRef.socketFunctions.findSync((socketFunctionArg) => {
|
|
68
|
+
return socketFunctionArg.name === requestData.funcCallData.funcName;
|
|
40
69
|
});
|
|
70
|
+
if (referencedFunction) {
|
|
71
|
+
const localSocketRequest = new SocketRequest(this.smartsocketRef, {
|
|
72
|
+
side: 'responding',
|
|
73
|
+
originSocketConnection: this,
|
|
74
|
+
shortId: requestData.shortId,
|
|
75
|
+
funcCallData: requestData.funcCallData,
|
|
76
|
+
});
|
|
77
|
+
localSocketRequest.createResponse();
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
logger.log('warn', `function ${requestData.funcCallData.funcName} not found or out of scope`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
handleFunctionResponse(messageData) {
|
|
84
|
+
const responseData = {
|
|
85
|
+
funcCallData: {
|
|
86
|
+
funcName: messageData.payload.funcName,
|
|
87
|
+
funcDataArg: messageData.payload.funcData,
|
|
88
|
+
},
|
|
89
|
+
shortId: messageData.id,
|
|
90
|
+
};
|
|
91
|
+
const targetSocketRequest = SocketRequest.getSocketRequestById(this.smartsocketRef, responseData.shortId);
|
|
92
|
+
if (targetSocketRequest) {
|
|
93
|
+
targetSocketRequest.handleResponse(responseData);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
handleTagUpdate(messageData) {
|
|
97
|
+
const tagStoreArg = messageData.payload.tags;
|
|
98
|
+
if (!plugins.smartjson.deepEqualObjects(this.tagStore, tagStoreArg)) {
|
|
99
|
+
this.tagStore = tagStoreArg;
|
|
100
|
+
// Echo back to confirm
|
|
101
|
+
this.sendMessage({
|
|
102
|
+
type: 'tagUpdate',
|
|
103
|
+
payload: { tags: this.tagStore },
|
|
104
|
+
});
|
|
105
|
+
this.tagStoreObservable.next(this.tagStore);
|
|
106
|
+
}
|
|
107
|
+
this.remoteTagStoreObservable.next(tagStoreArg);
|
|
41
108
|
}
|
|
42
109
|
/**
|
|
43
110
|
* adds a tag to a connection
|
|
@@ -57,7 +124,10 @@ export class SocketConnection {
|
|
|
57
124
|
done.resolve();
|
|
58
125
|
}
|
|
59
126
|
});
|
|
60
|
-
this.
|
|
127
|
+
this.sendMessage({
|
|
128
|
+
type: 'tagUpdate',
|
|
129
|
+
payload: { tags: this.tagStore },
|
|
130
|
+
});
|
|
61
131
|
await done.promise;
|
|
62
132
|
}
|
|
63
133
|
/**
|
|
@@ -73,35 +143,60 @@ export class SocketConnection {
|
|
|
73
143
|
async removeTagById(tagIdArg) {
|
|
74
144
|
delete this.tagStore[tagIdArg];
|
|
75
145
|
this.tagStoreObservable.next(this.tagStore);
|
|
76
|
-
this.
|
|
146
|
+
this.sendMessage({
|
|
147
|
+
type: 'tagUpdate',
|
|
148
|
+
payload: { tags: this.tagStore },
|
|
149
|
+
});
|
|
77
150
|
}
|
|
78
151
|
// authenticating --------------------------
|
|
79
152
|
/**
|
|
80
|
-
* authenticate the socket
|
|
153
|
+
* authenticate the socket (server side)
|
|
81
154
|
*/
|
|
82
155
|
authenticate() {
|
|
83
156
|
const done = plugins.smartpromise.defer();
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
157
|
+
// Set up message handler for authentication
|
|
158
|
+
const messageHandler = (event) => {
|
|
159
|
+
try {
|
|
160
|
+
const data = typeof event.data === 'string' ? event.data : event.data.toString();
|
|
161
|
+
const message = JSON.parse(data);
|
|
162
|
+
if (message.type === 'auth') {
|
|
163
|
+
const authData = message.payload;
|
|
164
|
+
logger.log('info', 'received authentication data...');
|
|
165
|
+
if (authData.alias) {
|
|
166
|
+
this.alias = authData.alias;
|
|
167
|
+
this.authenticated = true;
|
|
168
|
+
// Send authentication response
|
|
169
|
+
this.sendMessage({
|
|
170
|
+
type: 'authResponse',
|
|
171
|
+
payload: { success: true },
|
|
172
|
+
});
|
|
173
|
+
logger.log('ok', `socket with >>alias ${this.alias} is authenticated!`);
|
|
174
|
+
done.resolve(this);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
this.authenticated = false;
|
|
178
|
+
this.sendMessage({
|
|
179
|
+
type: 'authResponse',
|
|
180
|
+
payload: { success: false, error: 'No alias provided' },
|
|
181
|
+
});
|
|
182
|
+
this.disconnect();
|
|
183
|
+
done.reject('a socket tried to connect, but could not authenticate.');
|
|
184
|
+
}
|
|
185
|
+
}
|
|
94
186
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
await this.disconnect();
|
|
98
|
-
done.reject('a socket tried to connect, but could not authenticated.');
|
|
187
|
+
catch (err) {
|
|
188
|
+
// Not a valid message, ignore
|
|
99
189
|
}
|
|
100
|
-
}
|
|
190
|
+
};
|
|
191
|
+
this.socket.addEventListener('message', messageHandler);
|
|
192
|
+
// Request authentication
|
|
101
193
|
const requestAuthPayload = {
|
|
102
|
-
|
|
194
|
+
type: 'authRequest',
|
|
195
|
+
payload: {
|
|
196
|
+
serverAlias: this.smartsocketRef.alias,
|
|
197
|
+
},
|
|
103
198
|
};
|
|
104
|
-
this.
|
|
199
|
+
this.sendMessage(requestAuthPayload);
|
|
105
200
|
return done.promise;
|
|
106
201
|
}
|
|
107
202
|
// listening -------------------------------
|
|
@@ -111,39 +206,18 @@ export class SocketConnection {
|
|
|
111
206
|
listenToFunctionRequests() {
|
|
112
207
|
const done = plugins.smartpromise.defer();
|
|
113
208
|
if (this.authenticated) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
if (referencedFunction) {
|
|
121
|
-
// logger.log('ok', 'function in access scope');
|
|
122
|
-
const localSocketRequest = new SocketRequest(this.smartsocketRef, {
|
|
123
|
-
side: 'responding',
|
|
124
|
-
originSocketConnection: this,
|
|
125
|
-
shortId: dataArg.shortId,
|
|
126
|
-
funcCallData: dataArg.funcCallData,
|
|
127
|
-
});
|
|
128
|
-
localSocketRequest.createResponse(); // takes care of creating response and sending it back
|
|
209
|
+
// Set up message handler for all messages
|
|
210
|
+
const messageHandler = (event) => {
|
|
211
|
+
try {
|
|
212
|
+
const data = typeof event.data === 'string' ? event.data : event.data.toString();
|
|
213
|
+
const message = JSON.parse(data);
|
|
214
|
+
this.handleMessage(message);
|
|
129
215
|
}
|
|
130
|
-
|
|
131
|
-
|
|
216
|
+
catch (err) {
|
|
217
|
+
// Not a valid JSON message, ignore
|
|
132
218
|
}
|
|
133
|
-
}
|
|
134
|
-
this.socket.
|
|
135
|
-
// logger.log('info', `received response for request with id ${dataArg.shortId}`);
|
|
136
|
-
const targetSocketRequest = SocketRequest.getSocketRequestById(this.smartsocketRef, dataArg.shortId);
|
|
137
|
-
targetSocketRequest.handleResponse(dataArg);
|
|
138
|
-
});
|
|
139
|
-
this.socket.on('updateTagStore', async (tagStoreArg) => {
|
|
140
|
-
if (!plugins.smartjson.deepEqualObjects(this.tagStore, tagStoreArg)) {
|
|
141
|
-
this.tagStore = tagStoreArg;
|
|
142
|
-
this.socket.emit('updateTagStore', this.tagStore);
|
|
143
|
-
this.tagStoreObservable.next(this.tagStore);
|
|
144
|
-
}
|
|
145
|
-
this.remoteTagStoreObservable.next(tagStoreArg);
|
|
146
|
-
});
|
|
219
|
+
};
|
|
220
|
+
this.socket.addEventListener('message', messageHandler);
|
|
147
221
|
logger.log('info', `now listening to function requests for ${this.alias} on side ${this.side}`);
|
|
148
222
|
done.resolve(this);
|
|
149
223
|
}
|
|
@@ -156,7 +230,10 @@ export class SocketConnection {
|
|
|
156
230
|
}
|
|
157
231
|
// disconnecting ----------------------
|
|
158
232
|
async disconnect() {
|
|
159
|
-
this.socket.
|
|
233
|
+
if (this.socket.readyState === 1 || this.socket.readyState === 0) {
|
|
234
|
+
this.socket.close();
|
|
235
|
+
}
|
|
236
|
+
allSocketConnections.remove(this);
|
|
160
237
|
this.updateStatus('disconnected');
|
|
161
238
|
}
|
|
162
239
|
updateStatus(statusArg) {
|
|
@@ -166,4 +243,4 @@ export class SocketConnection {
|
|
|
166
243
|
this.eventStatus = statusArg;
|
|
167
244
|
}
|
|
168
245
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRjb25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxLQUFLLFlBQVksTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQWlDLE1BQU0sd0NBQXdDLENBQUM7QUFFdEcsWUFBWTtBQUNaLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQTJCbEQsaUJBQWlCO0FBQ2pCLE1BQU0sQ0FBQyxJQUFJLG9CQUFvQixHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQW9CLENBQUM7QUFFaEY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBYzNCLFlBQVksVUFBK0M7UUFYcEQsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFJL0IsaUJBQVksR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBZ0MsQ0FBQztRQUNoRixnQkFBVyxHQUFpQyxLQUFLLENBQUM7UUFFakQsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFDckMsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQXdCLENBQUM7UUFDOUUsNkJBQXdCLEdBQUcsSUFBSSxPQUFP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
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as plugins from './smartsocket.plugins.js';
|
|
2
|
+
import * as interfaces from './interfaces/index.js';
|
|
2
3
|
// import interfaces
|
|
3
4
|
import { SocketFunction, } from './smartsocket.classes.socketfunction.js';
|
|
4
5
|
// import classes
|
|
@@ -30,18 +31,21 @@ export class SocketRequest {
|
|
|
30
31
|
* dispatches a socketrequest from the requesting to the receiving side
|
|
31
32
|
*/
|
|
32
33
|
dispatch() {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
const message = {
|
|
35
|
+
type: 'function',
|
|
36
|
+
id: this.shortid,
|
|
37
|
+
payload: {
|
|
38
|
+
funcName: this.funcCallData.funcName,
|
|
39
|
+
funcData: this.funcCallData.funcDataArg,
|
|
40
|
+
},
|
|
36
41
|
};
|
|
37
|
-
this.originSocketConnection.
|
|
42
|
+
this.originSocketConnection.sendMessage(message);
|
|
38
43
|
return this.done.promise;
|
|
39
44
|
}
|
|
40
45
|
/**
|
|
41
46
|
* handles the response that is received by the requesting side
|
|
42
47
|
*/
|
|
43
48
|
async handleResponse(responseDataArg) {
|
|
44
|
-
// logger.log('info', 'handling response!');
|
|
45
49
|
this.done.resolve(responseDataArg.funcCallData);
|
|
46
50
|
this.smartsocketRef.socketRequests.remove(this);
|
|
47
51
|
}
|
|
@@ -55,18 +59,20 @@ export class SocketRequest {
|
|
|
55
59
|
logger.log('error', `There is no SocketFunction defined for ${this.funcCallData.funcName}`);
|
|
56
60
|
return;
|
|
57
61
|
}
|
|
58
|
-
// logger.log('info', `invoking ${targetSocketFunction.name}`);
|
|
59
62
|
targetSocketFunction
|
|
60
63
|
.invoke(this.funcCallData, this.originSocketConnection)
|
|
61
64
|
.then((resultData) => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
const message = {
|
|
66
|
+
type: 'functionResponse',
|
|
67
|
+
id: this.shortid,
|
|
68
|
+
payload: {
|
|
69
|
+
funcName: resultData.funcName,
|
|
70
|
+
funcData: resultData.funcDataArg,
|
|
71
|
+
},
|
|
66
72
|
};
|
|
67
|
-
this.originSocketConnection.
|
|
73
|
+
this.originSocketConnection.sendMessage(message);
|
|
68
74
|
this.smartsocketRef.socketRequests.remove(this);
|
|
69
75
|
});
|
|
70
76
|
}
|
|
71
77
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzb2NrZXQuY2xhc3Nlcy5zb2NrZXRyZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxLQUFLLFVBQVUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxvQkFBb0I7QUFDcEIsT0FBTyxFQUNMLGNBQWMsR0FHZixNQUFNLHlDQUF5QyxDQUFDO0FBRWpELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBMkIvRSxpQkFBaUI7QUFDakIsTUFBTSxPQUFPLGFBQWE7SUFDeEIsU0FBUztJQUNGLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDaEMsY0FBK0MsRUFDL0MsVUFBa0I7UUFFbEIsT0FBTyxjQUFjLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUU7WUFDakUsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVlELFlBQ0UsaUJBQWtELEVBQ2xELFVBQStDO1FBWmpELFdBQVc7UUFDSixXQUFNLEdBQXlCLEtBQUssQ0FBQztRQUtyQyxTQUFJLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQXNDLENBQUM7UUFRN0UsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUM1QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsVUFBVSxDQUFDLHNCQUFzQixDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsd0NBQXdDO0lBRXhDOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE1BQU0sT0FBTyxHQUErRDtZQUMxRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDaEIsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVE7Z0JBQ3BDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7YUFDeEM7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsZUFBNEM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsd0NBQXdDO0lBRXhDOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGNBQWM7UUFDekIsTUFBTSxvQkFBb0IsR0FBc0IsY0FBYyxDQUFDLHVCQUF1QixDQUNwRixJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLDBDQUEwQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDNUYsT0FBTztRQUNULENBQUM7UUFFRCxvQkFBb0I7YUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDO2FBQ3RELElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25CLE1BQU0sT0FBTyxHQUErRDtnQkFDMUUsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNoQixPQUFPLEVBQUU7b0JBQ1AsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO29CQUM3QixRQUFRLEVBQUUsVUFBVSxDQUFDLFdBQVc7aUJBQ2pDO2FBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNGIn0=
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
import * as pluginsTyped from './smartsocket.pluginstyped.js';
|
|
2
2
|
import { Smartsocket } from './smartsocket.classes.smartsocket.js';
|
|
3
3
|
/**
|
|
4
|
-
* class
|
|
5
|
-
* handles the
|
|
4
|
+
* class SocketServer
|
|
5
|
+
* handles the WebSocket server in standalone mode, or provides hooks for smartserve integration
|
|
6
6
|
*/
|
|
7
7
|
export declare class SocketServer {
|
|
8
8
|
private smartsocket;
|
|
9
|
-
private httpServerDeferred;
|
|
10
9
|
private httpServer;
|
|
10
|
+
private wsServer;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* whether httpServer is standalone (created by us)
|
|
13
13
|
*/
|
|
14
14
|
private standaloneServer;
|
|
15
15
|
constructor(smartSocketInstance: Smartsocket);
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* Starts listening to incoming websocket connections (standalone mode).
|
|
18
|
+
* If no port is specified, this is a no-op (hooks mode via smartserve).
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
start(): Promise<void>;
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* closes the server
|
|
23
23
|
*/
|
|
24
|
-
|
|
24
|
+
stop(): Promise<void>;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* Returns WebSocket hooks for integration with smartserve.
|
|
27
|
+
* Pass these hooks to SmartServe's websocket config.
|
|
27
28
|
*/
|
|
28
|
-
|
|
29
|
+
getSmartserveWebSocketHooks(): pluginsTyped.ISmartserveWebSocketHooks;
|
|
29
30
|
/**
|
|
30
|
-
*
|
|
31
|
+
* Creates a WebSocket-like object from a smartserve peer
|
|
32
|
+
* This allows our SocketConnection to work with both native WebSocket and smartserve peers
|
|
31
33
|
*/
|
|
32
|
-
|
|
34
|
+
private createWsLikeFromPeer;
|
|
33
35
|
}
|