topsyde-utils 1.0.66 → 1.0.68
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/server/bun/websocket/Channel.d.ts +2 -2
- package/dist/server/bun/websocket/Channel.js +5 -4
- package/dist/server/bun/websocket/Channel.js.map +1 -1
- package/dist/server/bun/websocket/Client.d.ts +9 -2
- package/dist/server/bun/websocket/Client.js +14 -4
- package/dist/server/bun/websocket/Client.js.map +1 -1
- package/dist/server/bun/websocket/Websocket.js +4 -3
- package/dist/server/bun/websocket/Websocket.js.map +1 -1
- package/dist/server/bun/websocket/websocket.types.d.ts +6 -0
- package/package.json +1 -1
@@ -8,8 +8,8 @@ export default class Channel {
|
|
8
8
|
protected members: Map<string, Client>;
|
9
9
|
protected metadata: Record<string, string>;
|
10
10
|
constructor(id: string, name: string, limit?: number, members?: Map<string, Client>, metadata?: Record<string, string>);
|
11
|
-
addMember(entity: I_WebsocketEntity):
|
12
|
-
removeMember(entity: I_WebsocketEntity):
|
11
|
+
addMember(entity: I_WebsocketEntity): false | Client;
|
12
|
+
removeMember(entity: I_WebsocketEntity): false | Client;
|
13
13
|
broadcast(message: WebsocketStructuredMessage, exclude?: string[] | I_WebsocketEntity[]): void;
|
14
14
|
hasMember(client: I_WebsocketEntity | string): boolean;
|
15
15
|
getMember(client: I_WebsocketEntity | string): Client | undefined;
|
@@ -16,20 +16,21 @@ class Channel {
|
|
16
16
|
}
|
17
17
|
addMember(entity) {
|
18
18
|
if (!this.canAddMember())
|
19
|
-
return;
|
20
|
-
const client = new Client_1.default(entity
|
19
|
+
return false;
|
20
|
+
const client = new Client_1.default(entity);
|
21
21
|
this.members.set(client.id, client);
|
22
22
|
client.joinChannel(this);
|
23
23
|
return client;
|
24
24
|
}
|
25
25
|
removeMember(entity) {
|
26
26
|
if (!this.members.has(entity.id))
|
27
|
-
return;
|
27
|
+
return false;
|
28
28
|
const client = this.members.get(entity.id);
|
29
29
|
if (!client)
|
30
|
-
return;
|
30
|
+
return false;
|
31
31
|
client.leaveChannel(this);
|
32
32
|
this.members.delete(entity.id);
|
33
|
+
return client;
|
33
34
|
}
|
34
35
|
broadcast(message, exclude) {
|
35
36
|
Websocket_1.default.Broadcast(this.id, message);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Channel.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,4DAAoC;AAGpC,MAAqB,OAAO;IAQ3B,YAAY,EAAU,EAAE,IAAY,EAAE,KAAc,EAAE,OAA6B,EAAE,QAAiC;QAP5G,cAAS,GAAU,IAAI,IAAI,EAAE,CAAC;QAQvC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;IAChC,CAAC;
|
1
|
+
{"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Channel.ts"],"names":[],"mappings":"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"}
|
@@ -1,21 +1,28 @@
|
|
1
1
|
import { ServerWebSocket } from "bun";
|
2
2
|
import Channel from "./Channel";
|
3
|
-
import type { I_WebsocketClient, WebsocketClientData, WebsocketChannel, WebsocketStructuredMessage } from "./websocket.types";
|
3
|
+
import type { I_WebsocketClient, WebsocketClientData, WebsocketChannel, WebsocketStructuredMessage, I_WebsocketEntity } from "./websocket.types";
|
4
4
|
export default class Client implements I_WebsocketClient {
|
5
5
|
private _id;
|
6
|
+
private _name;
|
6
7
|
private _ws;
|
7
8
|
private _channels;
|
8
9
|
private set ws(value);
|
9
10
|
get ws(): ServerWebSocket<WebsocketClientData>;
|
10
11
|
private set id(value);
|
11
12
|
get id(): string;
|
13
|
+
get name(): string;
|
14
|
+
private set name(value);
|
12
15
|
private set channels(value);
|
13
16
|
get channels(): WebsocketChannel;
|
14
|
-
constructor(
|
17
|
+
constructor(entity: I_WebsocketEntity);
|
15
18
|
joinChannel(channel: Channel): void;
|
16
19
|
leaveChannel(channel: Channel): void;
|
17
20
|
joinChannels(channels: Channel[]): void;
|
18
21
|
leaveChannels(channels?: Channel[]): void;
|
22
|
+
whoami(): {
|
23
|
+
id: string;
|
24
|
+
name: string;
|
25
|
+
};
|
19
26
|
send(message: WebsocketStructuredMessage): void;
|
20
27
|
subscribe(channel: string): void;
|
21
28
|
unsubscribe(channel: string): void;
|
@@ -13,16 +13,23 @@ class Client {
|
|
13
13
|
get id() {
|
14
14
|
return this._id;
|
15
15
|
}
|
16
|
+
get name() {
|
17
|
+
return this._name;
|
18
|
+
}
|
19
|
+
set name(value) {
|
20
|
+
this._name = value;
|
21
|
+
}
|
16
22
|
set channels(value) {
|
17
23
|
this._channels = value;
|
18
24
|
}
|
19
25
|
get channels() {
|
20
26
|
return this._channels;
|
21
27
|
}
|
22
|
-
constructor(
|
23
|
-
this._id = id;
|
24
|
-
this.
|
25
|
-
this.
|
28
|
+
constructor(entity) {
|
29
|
+
this._id = entity.id;
|
30
|
+
this._name = entity.name;
|
31
|
+
this._ws = entity.ws;
|
32
|
+
this.ws = entity.ws;
|
26
33
|
this._channels = new Map();
|
27
34
|
}
|
28
35
|
joinChannel(channel) {
|
@@ -49,6 +56,9 @@ class Client {
|
|
49
56
|
this.leaveChannel(channel);
|
50
57
|
});
|
51
58
|
}
|
59
|
+
whoami() {
|
60
|
+
return { id: this.id, name: this.name };
|
61
|
+
}
|
52
62
|
send(message) {
|
53
63
|
this.ws.send(JSON.stringify(message));
|
54
64
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Client.ts"],"names":[],"mappings":";;AAIA,MAAqB,MAAM;
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Client.ts"],"names":[],"mappings":"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"}
|
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
const singleton_1 = __importDefault(require("../../../singleton"));
|
7
|
+
const utils_1 = require("../../../utils");
|
7
8
|
const Console_1 = require("../../../utils/Console");
|
8
9
|
const Channel_1 = __importDefault(require("./Channel"));
|
9
|
-
const utils_1 = require("../../../utils");
|
10
10
|
class Websocket extends singleton_1.default {
|
11
11
|
constructor(ws_interface) {
|
12
12
|
super();
|
@@ -34,15 +34,16 @@ class Websocket extends singleton_1.default {
|
|
34
34
|
const global = this.channels.get("global");
|
35
35
|
if (!global)
|
36
36
|
throw new Error("Global channel not found");
|
37
|
-
const client = global.addMember({ id: ws.data.id, ws: ws });
|
37
|
+
const client = global.addMember({ id: ws.data.id, ws: ws, name: ws.data.name });
|
38
38
|
if (!client)
|
39
39
|
throw new Error("Failed to add client to global channel");
|
40
40
|
this.clients.set(client.id, client);
|
41
|
+
client.send({ type: "client.connected", content: { client: client.whoami() } });
|
41
42
|
};
|
42
43
|
this.clientDisconnected = (ws) => {
|
43
44
|
utils_1.Lib.Log("WebSocket connection closed");
|
44
45
|
this.channels.forEach((channel) => {
|
45
|
-
channel.removeMember({ id: ws.data.id, ws: ws });
|
46
|
+
channel.removeMember({ id: ws.data.id, ws: ws, name: ws.data.name });
|
46
47
|
});
|
47
48
|
this.clients.delete(ws.data.id);
|
48
49
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Websocket.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Websocket.ts"],"names":[],"mappings":";;;;;AACA,mEAA2C;AAC3C,oDAAiD;AACjD,wDAAgC;
|
1
|
+
{"version":3,"file":"Websocket.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Websocket.ts"],"names":[],"mappings":"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"}
|
@@ -10,16 +10,22 @@ export type WebsocketStructuredMessage = {
|
|
10
10
|
};
|
11
11
|
export type WebsocketClientData = {
|
12
12
|
id: string;
|
13
|
+
name: string;
|
13
14
|
};
|
14
15
|
export interface I_WebsocketEntity {
|
15
16
|
ws: ServerWebSocket<WebsocketClientData>;
|
16
17
|
id: string;
|
18
|
+
name: string;
|
17
19
|
}
|
18
20
|
export interface I_WebsocketClient extends I_WebsocketEntity {
|
19
21
|
channels: WebsocketChannel;
|
20
22
|
send(message: WebsocketStructuredMessage): void;
|
21
23
|
subscribe(channel: string): void;
|
22
24
|
unsubscribe(channel: string): void;
|
25
|
+
whoami(): {
|
26
|
+
id: string;
|
27
|
+
name: string;
|
28
|
+
};
|
23
29
|
}
|
24
30
|
export interface I_WebsocketInterface {
|
25
31
|
setup: (channels: WebsocketChannel) => Partial<WebSocketHandler<WebsocketClientData>>;
|