diff --git a/docs/categories/02-Server/server-socket-instance.md b/docs/categories/02-Server/server-socket-instance.md index ec8a4c84..7f55d68b 100644 --- a/docs/categories/02-Server/server-socket-instance.md +++ b/docs/categories/02-Server/server-socket-instance.md @@ -140,6 +140,24 @@ console.log(sockets[0].data.username); // "alice" More information [here](server-instance.md#utility-methods). +:::caution +Do not rely on reference equality when using properties of `data`. +::: + +```js +// BAD +const activeUsers = new Set(); +io.on("connection", (socket) => { + socket.data.user = { name: "alice" }; + activeUsers.add(socket.data.user); + + socket.on("disconnect", () => { + // Socket.IO makes no guarantee data.user will reference the same object... + activeUsers.delete(socket.data.user); + }); +}); +``` + ## Socket#conn A reference to the underlying Engine.IO socket (see [here](../01-Documentation/how-it-works.md)).