{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":17520466,"defaultBranch":"main","name":"socket.io-adapter","ownerLogin":"socketio","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-03-07T16:44:00.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/10566080?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1708590963.0","currentOid":""},"activityList":{"items":[{"before":"67fe1b0cf3eea0e0bbf46beeaae4610327b0fb65","after":null,"ref":"refs/heads/ci/ts-4.5","pushedAt":"2024-02-22T08:36:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"a13f35f0e6b85bbba07f99ee2440e914f1429d83","after":"5eae5a0b541b2d671b561e88029f8aa888cb33f9","ref":"refs/heads/main","pushedAt":"2024-02-22T08:35:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"chore(release): 2.5.4\n\nDiff: https://github.com/socketio/socket.io-adapter/compare/2.5.3...2.5.4","shortMessageHtmlLink":"chore(release): 2.5.4"}},{"before":null,"after":"67fe1b0cf3eea0e0bbf46beeaae4610327b0fb65","ref":"refs/heads/ci/ts-4.5","pushedAt":"2024-02-22T08:27:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"ci: add test with older TypeScript version","shortMessageHtmlLink":"ci: add test with older TypeScript version"}},{"before":"85b49010f9b7c3a318fcff1e3af511f5e28783a1","after":null,"ref":"refs/heads/fix/emit-before-disconnect","pushedAt":"2024-02-22T08:25:28.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"207c0dba1af9d929fb076b5bd60253adc778c98a","after":"a13f35f0e6b85bbba07f99ee2440e914f1429d83","ref":"refs/heads/main","pushedAt":"2024-02-22T08:17:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"fix: ensure the order of the commands\n\nBefore this change, the broadcast() method would send the BROADCAST\ncommand and then apply it locally (which is required to retrieve the\noffset of the message, when connection state recovery is enabled),\nwhile the other commands like disconnectSockets() would first apply it\nlocally and then send the command to the other nodes.\n\nSo, for example:\n\n```js\nio.emit(\"bye\");\nio.disconnectSockets();\n```\n\nIn that case, the clients connected to the io instance would not receive\nthe \"bye\" event, while the clients connected to the other server\ninstances would receive it before being disconnected.\n\nRelated:\n\n- https://github.com/socketio/socket.io-redis-streams-adapter/issues/13\n- https://github.com/socketio/socket.io-postgres-adapter/issues/12","shortMessageHtmlLink":"fix: ensure the order of the commands"}},{"before":null,"after":"85b49010f9b7c3a318fcff1e3af511f5e28783a1","ref":"refs/heads/fix/emit-before-disconnect","pushedAt":"2024-02-22T08:11:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"fix: ensure the order of the commands\n\nBefore this change, the broadcast() method would send the BROADCAST\ncommand and then apply it locally (which is required to retrieve the\noffset of the message, when connection state recovery is enabled),\nwhile the other commands like disconnectSockets() would first apply it\nlocally and then send the command to the other nodes.\n\nSo, for example:\n\n```\nio.emit(\"bye\");\nio.disconnectSockets();\n```\n\nIn that case, the clients connected on the io instance would not receive\nthe \"bye\" event, while the clients connected to the other server\ninstances would receive it before being disconnected.","shortMessageHtmlLink":"fix: ensure the order of the commands"}},{"before":"9d4c4a75a498e6766a06bffb02c0e5253b8d4efd","after":"207c0dba1af9d929fb076b5bd60253adc778c98a","ref":"refs/heads/main","pushedAt":"2024-02-22T07:35:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor: break circular dependency (2)","shortMessageHtmlLink":"refactor: break circular dependency (2)"}},{"before":"ca397f3afe06ed9390db52b70a506a9721e091d8","after":"9d4c4a75a498e6766a06bffb02c0e5253b8d4efd","ref":"refs/heads/main","pushedAt":"2024-02-22T07:03:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor(cluster): export ClusterAdapterOptions and MessageType types\n\nRelated:\n\n- https://github.com/socketio/socket.io-redis-streams-adapter/blob/89d00a49e4aadf1bfe32ddc644d0ef877a08238d/lib/adapter.ts#L17\n- https://github.com/socketio/socket.io-redis-streams-adapter/blob/89d00a49e4aadf1bfe32ddc644d0ef877a08238d/lib/adapter.ts#L191","shortMessageHtmlLink":"refactor(cluster): export ClusterAdapterOptions and MessageType types"}},{"before":"549156c064bd7abb6cb2ae0aadd508afe16d7c3d","after":"ca397f3afe06ed9390db52b70a506a9721e091d8","ref":"refs/heads/main","pushedAt":"2024-02-22T06:58:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"fix(types): ensure compatibility with TypeScript < 4.5\n\n\"import { type ... }\" was added in TypeScript 4.5.\n\nReference: https://devblogs.microsoft.com/typescript/announcing-typescript-4-5/\n\nRelated:\n\n- https://github.com/socketio/socket.io-adapter/issues/86\n- https://github.com/socketio/socket.io/issues/3891","shortMessageHtmlLink":"fix(types): ensure compatibility with TypeScript < 4.5"}},{"before":"5dcd182736f94b9cbe3f4acb51621a59069f954d","after":null,"ref":"refs/heads/refactor/onMessage-sync","pushedAt":"2024-02-21T11:36:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"1d8da645143f238e403de6e366d54f1f65846160","after":"549156c064bd7abb6cb2ae0aadd508afe16d7c3d","ref":"refs/heads/main","pushedAt":"2024-02-21T11:36:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"chore(release): 2.5.3\n\nDiff: https://github.com/socketio/socket.io-adapter/compare/2.5.2...2.5.3","shortMessageHtmlLink":"chore(release): 2.5.3"}},{"before":null,"after":"5dcd182736f94b9cbe3f4acb51621a59069f954d","ref":"refs/heads/refactor/onMessage-sync","pushedAt":"2024-02-21T11:09:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor(cluster): make onMessage() method synchronous\n\nThe fetchSockets() method of the parent class is synchronous, so the\nonMessage() method does not need to be asynchronous.","shortMessageHtmlLink":"refactor(cluster): make onMessage() method synchronous"}},{"before":"a38bbf98ee54e1d9a7524bde97b74d93407c225c","after":null,"ref":"refs/heads/test/cluster","pushedAt":"2024-02-21T10:47:52.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"2a6a21560034d259264fde15122cf000e5960616","after":"1d8da645143f238e403de6e366d54f1f65846160","ref":"refs/heads/main","pushedAt":"2024-02-21T10:47:47.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"ci: upgrade to actions/checkout@4 and actions/setup-node@4\n\nReference: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/","shortMessageHtmlLink":"ci: upgrade to actions/checkout@4 and actions/setup-node@4"}},{"before":"8fce41b488130f06db761539832463f602d630a1","after":"a38bbf98ee54e1d9a7524bde97b74d93407c225c","ref":"refs/heads/test/cluster","pushedAt":"2024-02-21T10:36:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"ci: upgrade to actions/checkout@4 and actions/setup-node@4\n\nReference: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/","shortMessageHtmlLink":"ci: upgrade to actions/checkout@4 and actions/setup-node@4"}},{"before":"d782d9652ea7ae122e20c774831302334c46fc3f","after":null,"ref":"refs/heads/refactor/cluster-adapter","pushedAt":"2024-02-21T10:31:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":null,"after":"8fce41b488130f06db761539832463f602d630a1","ref":"refs/heads/test/cluster","pushedAt":"2024-02-21T10:31:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"test(cluster): init the test suite for the clustered adapter","shortMessageHtmlLink":"test(cluster): init the test suite for the clustered adapter"}},{"before":"1011ab3bfb35763e7b0311196806bd693c3e5deb","after":"2a6a21560034d259264fde15122cf000e5960616","ref":"refs/heads/main","pushedAt":"2024-02-20T15:49:37.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor(cluster): add explicit types","shortMessageHtmlLink":"refactor(cluster): add explicit types"}},{"before":"1011ab3bfb35763e7b0311196806bd693c3e5deb","after":"d782d9652ea7ae122e20c774831302334c46fc3f","ref":"refs/heads/refactor/cluster-adapter","pushedAt":"2024-02-20T15:42:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"perf(cluster): use timer.refresh()\n\nReference: https://nodejs.org/api/timers.html#timeoutrefresh","shortMessageHtmlLink":"perf(cluster): use timer.refresh()"}},{"before":"80af4e939c9caf89b0234ba1e676a3887c8d0ce6","after":"1011ab3bfb35763e7b0311196806bd693c3e5deb","ref":"refs/heads/main","pushedAt":"2024-02-20T15:27:33.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor(cluster): allow to call onMessage() with a cluster response\n\nThe Redis adapter is currently the only adapter which makes a\ndistinction between publishing messages (one channel for all) and\nresponses (one channel for each node).","shortMessageHtmlLink":"refactor(cluster): allow to call onMessage() with a cluster response"}},{"before":null,"after":"1011ab3bfb35763e7b0311196806bd693c3e5deb","ref":"refs/heads/refactor/cluster-adapter","pushedAt":"2024-02-20T15:24:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor(cluster): allow to call onMessage() with a cluster response\n\nThe Redis adapter is currently the only adapter which makes a\ndistinction between publishing messages (one channel for all) and\nresponses (one channel for each node).","shortMessageHtmlLink":"refactor(cluster): allow to call onMessage() with a cluster response"}},{"before":"6df8d0f47cab62dcd034bc146ac1fda993824fe3","after":null,"ref":"refs/heads/refactor/cluster-adapter","pushedAt":"2024-02-20T14:54:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":"28f60b880ad04ff4b48ade0cd529f1970643604f","after":"80af4e939c9caf89b0234ba1e676a3887c8d0ce6","ref":"refs/heads/main","pushedAt":"2024-02-20T14:53:41.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"fix(cluster): fix count in fetchSockets() method\n\nRelated: https://github.com/socketio/socket.io-redis-adapter/commit/bd32763043a2eb79a21dffd8820f20e598348adf","shortMessageHtmlLink":"fix(cluster): fix count in fetchSockets() method"}},{"before":"d3d459804c9e59c566b74f3023d0f3e8fb4a9d22","after":"6df8d0f47cab62dcd034bc146ac1fda993824fe3","ref":"refs/heads/refactor/cluster-adapter","pushedAt":"2024-02-20T14:43:55.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"fix(cluster): fix count in fetchSockets() method\n\nRelated: https://github.com/socketio/socket.io-redis-adapter/commit/bd32763043a2eb79a21dffd8820f20e598348adf","shortMessageHtmlLink":"fix(cluster): fix count in fetchSockets() method"}},{"before":null,"after":"d3d459804c9e59c566b74f3023d0f3e8fb4a9d22","ref":"refs/heads/refactor/cluster-adapter","pushedAt":"2024-02-19T07:36:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor: import the ClusterAdapter abstract class\n\nImported from https://github.com/socketio/socket.io-redis-adapter/blob/ef5f0da0b4928fd422afc985aec0e233d34400c0/lib/cluster-adapter.ts","shortMessageHtmlLink":"refactor: import the ClusterAdapter abstract class"}},{"before":"d3d459804c9e59c566b74f3023d0f3e8fb4a9d22","after":null,"ref":"refs/heads/refactor/cluster-adapter","pushedAt":"2024-02-19T07:36:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"}},{"before":null,"after":"d3d459804c9e59c566b74f3023d0f3e8fb4a9d22","ref":"refs/heads/refactor/cluster-adapter","pushedAt":"2024-02-19T07:35:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"darrachequesne","name":"Damien Arrachequesne","path":"/darrachequesne","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13031701?s=80&v=4"},"commit":{"message":"refactor: import the ClusterAdapter abstract class\n\nImported from https://github.com/socketio/socket.io-redis-adapter/blob/ef5f0da0b4928fd422afc985aec0e233d34400c0/lib/cluster-adapter.ts","shortMessageHtmlLink":"refactor: import the ClusterAdapter abstract class"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEAbyS5QA","startCursor":null,"endCursor":null}},"title":"Activity ยท socketio/socket.io-adapter"}