From fc9c3985f1401da7a550aa048504538aa24cb6f4 Mon Sep 17 00:00:00 2001 From: Fuad Hasan <49100463+itsfuad@users.noreply.github.com> Date: Wed, 17 Apr 2024 15:27:20 +0000 Subject: [PATCH 1/3] MessagePack types error fixed by adding more flexible type definitions. --- packages/msgpack/lib/decode.ts | 2 +- packages/msgpack/lib/encode.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/msgpack/lib/decode.ts b/packages/msgpack/lib/decode.ts index 5c3fc09..5e8ab7a 100644 --- a/packages/msgpack/lib/decode.ts +++ b/packages/msgpack/lib/decode.ts @@ -44,7 +44,7 @@ function utf8Read(view: DataView, offset: number, length: number) { class Decoder { public _offset = 0; - private readonly _buffer: ArrayBuffer; + private readonly _buffer: ArrayBuffer | SharedArrayBuffer; private readonly _view: DataView; constructor(buffer: ArrayBuffer | ArrayBufferView) { diff --git a/packages/msgpack/lib/encode.ts b/packages/msgpack/lib/encode.ts index f87cc61..7f1689a 100644 --- a/packages/msgpack/lib/encode.ts +++ b/packages/msgpack/lib/encode.ts @@ -46,7 +46,7 @@ function utf8Length(str: string) { type DeferredElement = { _str?: string; _float?: number; - _bin?: ArrayBuffer; + _bin?: ArrayBuffer | ArrayBufferLike; _length: number; _offset: number; }; @@ -60,7 +60,7 @@ function _encodeObject( return _encode(bytes, defers, (value.toJSON as unknown as () => unknown)()); } - const keys = []; + const keys: any[] = []; let key: string; const allKeys = Object.keys(value); From e63995f80767738d52f15fea084574621a3cac4f Mon Sep 17 00:00:00 2001 From: Fuad Hasan Date: Tue, 27 Aug 2024 20:41:26 +0600 Subject: [PATCH 2/3] refactor: improve WebSocket transport reliability and readiness check --- .vscode/settings.json | 3 +++ packages/engine.io/lib/transports/websocket.ts | 2 +- packages/socket.io/lib/parent-namespace.ts | 7 ------- packages/socket.io/lib/server.ts | 6 +++--- 4 files changed, 7 insertions(+), 11 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b943dbc --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "deno.enable": true +} \ No newline at end of file diff --git a/packages/engine.io/lib/transports/websocket.ts b/packages/engine.io/lib/transports/websocket.ts index 6ba87e8..44ab615 100644 --- a/packages/engine.io/lib/transports/websocket.ts +++ b/packages/engine.io/lib/transports/websocket.ts @@ -16,7 +16,7 @@ export class WS extends Transport { public send(packets: Packet[]) { for (const packet of packets) { Parser.encodePacket(packet, true, (data: RawData) => { - if (this.writable) { + if (this.writable && this.readyState === "open") { this.socket?.send(data); } }); diff --git a/packages/socket.io/lib/parent-namespace.ts b/packages/socket.io/lib/parent-namespace.ts index 7517dfc..06993f0 100644 --- a/packages/socket.io/lib/parent-namespace.ts +++ b/packages/socket.io/lib/parent-namespace.ts @@ -23,13 +23,6 @@ export class ParentNamespace< server: Server, ) { super(server, "/_" + ParentNamespace.count++); - // this.adapter = { - // broadcast(packet: Packet, opts: BroadcastOptions) { - // this.children.forEach((nsp: Namespace) => { - // nsp.adapter.broadcast(packet, opts); - // }); - // } - // }; } public emit>( diff --git a/packages/socket.io/lib/server.ts b/packages/socket.io/lib/server.ts index b4da843..370f5c8 100644 --- a/packages/socket.io/lib/server.ts +++ b/packages/socket.io/lib/server.ts @@ -45,9 +45,9 @@ export interface ServerOptions { } export interface ServerReservedEvents< - ListenEvents, - EmitEvents, - ServerSideEvents, + ListenEvents extends EventsMap, + EmitEvents extends EventsMap, + ServerSideEvents extends EventsMap, SocketData, > extends NamespaceReservedEvents< From 109ce4e9ed76d332a5dd24012b812852fc7aa915 Mon Sep 17 00:00:00 2001 From: Fuad Hasan Date: Tue, 27 Aug 2024 20:45:48 +0600 Subject: [PATCH 3/3] fix: Add check for readyState before sending packets --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 370a3c7..6d6e21f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,16 @@ # Releases +- [0.2.1](#021-2024-08-27) (2024-08-27) - [0.2.0](#020-2022-10-11) (2022-10-11) - [0.1.1](#011-2022-09-14) (2022-09-14) - [0.1.0](#010-2022-09-12) (2022-09-12) +# [0.2.1](https://github.com/itsfuad/socket.io-deno/compare/0.2.0...0.2.1) (2024-08-27) + +### Bug Fixes + +- **engine:** Add check for readyState before sending packets + # [0.2.0](https://github.com/socketio/socket.io-deno/compare/0.1.1...0.2.0) (2022-10-11) ### Bug Fixes