From ccbb4c077375ec2cb0d1c472a902e52f1d9a7dfc Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Wed, 20 Sep 2023 12:45:04 +0200 Subject: [PATCH] docs: add example with connection state recovery --- .../README.md | 25 +++++++++ .../assets/csr.gif | Bin 0 -> 105707 bytes .../cjs/index.html | 49 ++++++++++++++++ .../cjs/index.js | 53 ++++++++++++++++++ .../cjs/package.json | 13 +++++ .../esm/index.html | 49 ++++++++++++++++ .../esm/index.js | 53 ++++++++++++++++++ .../esm/package.json | 13 +++++ 8 files changed, 255 insertions(+) create mode 100644 examples/connection-state-recovery-example/README.md create mode 100644 examples/connection-state-recovery-example/assets/csr.gif create mode 100644 examples/connection-state-recovery-example/cjs/index.html create mode 100644 examples/connection-state-recovery-example/cjs/index.js create mode 100644 examples/connection-state-recovery-example/cjs/package.json create mode 100644 examples/connection-state-recovery-example/esm/index.html create mode 100644 examples/connection-state-recovery-example/esm/index.js create mode 100644 examples/connection-state-recovery-example/esm/package.json diff --git a/examples/connection-state-recovery-example/README.md b/examples/connection-state-recovery-example/README.md new file mode 100644 index 0000000000..ad3e771611 --- /dev/null +++ b/examples/connection-state-recovery-example/README.md @@ -0,0 +1,25 @@ +# Example with connection state recovery + +This example shows how to use the [Connection state recovery feature](https://socket.io/docs/v4/connection-state-recovery). + +![Video of the example](assets/csr.gif) + +## How to use + +```shell +# choose your module syntax (either ES modules or CommonJS) +$ cd esm/ + +# install the dependencies +$ npm i + +# start the server +$ node index.js +``` + +And point your browser to `http://localhost:3000`. + +You can also run this example directly in your browser on: + +- [CodeSandbox](https://codesandbox.io/p/sandbox/github/socketio/socket.io/tree/main/examples/connection-state-recovery-example/esm?file=index.js) +- [StackBlitz](https://stackblitz.com/github/socketio/socket.io/tree/main/examples/connection-state-recovery-example/esm?file=index.js) diff --git a/examples/connection-state-recovery-example/assets/csr.gif b/examples/connection-state-recovery-example/assets/csr.gif new file mode 100644 index 0000000000000000000000000000000000000000..c82f415cbfb0de5b16771a89737ff554d8cbbd95 GIT binary patch literal 105707 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%0A5gaSvJLV<%)p+$o5 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 g;Lg0r@^2^Mup*-Evj6}9 literal 0 HcmV?d00001 diff --git a/examples/connection-state-recovery-example/cjs/index.html b/examples/connection-state-recovery-example/cjs/index.html new file mode 100644 index 0000000000..18b3573de5 --- /dev/null +++ b/examples/connection-state-recovery-example/cjs/index.html @@ -0,0 +1,49 @@ + + + + + Connection state recovery | Socket.IO + + +

Status: disconnected

+

Recovered? -

+ +

Latest messages:

+
    + + + + + diff --git a/examples/connection-state-recovery-example/cjs/index.js b/examples/connection-state-recovery-example/cjs/index.js new file mode 100644 index 0000000000..d4e4518cac --- /dev/null +++ b/examples/connection-state-recovery-example/cjs/index.js @@ -0,0 +1,53 @@ +const { readFile } = require("node:fs/promises"); +const { createServer } = require("node:http"); +const { Server } = require("socket.io"); + +const httpServer = createServer(async (req, res) => { + if (req.url !== "/") { + res.writeHead(404); + res.end("Not found"); + return; + } + // reload the file every time + const content = await readFile("index.html"); + const length = Buffer.byteLength(content); + + res.writeHead(200, { + "Content-Type": "text/html", + "Content-Length": length, + }); + res.end(content); +}); + +const io = new Server(httpServer, { + connectionStateRecovery: { + // the backup duration of the sessions and the packets + maxDisconnectionDuration: 2 * 60 * 1000, + // whether to skip middlewares upon successful recovery + skipMiddlewares: true, + }, +}); + +io.on("connection", (socket) => { + console.log(`connect ${socket.id}`); + + if (socket.recovered) { + console.log("recovered!"); + console.log("socket.rooms:", socket.rooms); + console.log("socket.data:", socket.data); + } else { + console.log("new connection"); + socket.join("sample room"); + socket.data.foo = "bar"; + } + + socket.on("disconnect", (reason) => { + console.log(`disconnect ${socket.id} due to ${reason}`); + }); +}); + +setInterval(() => { + io.emit("ping", new Date().toISOString()); +}, 1000); + +httpServer.listen(3000); diff --git a/examples/connection-state-recovery-example/cjs/package.json b/examples/connection-state-recovery-example/cjs/package.json new file mode 100644 index 0000000000..359a6a033f --- /dev/null +++ b/examples/connection-state-recovery-example/cjs/package.json @@ -0,0 +1,13 @@ +{ + "name": "connection-state-recovery-example", + "version": "0.0.1", + "private": true, + "type": "commonjs", + "description": "Example with connection state recovery", + "scripts": { + "start": "node index.js" + }, + "dependencies": { + "socket.io": "^4.7.2" + } +} diff --git a/examples/connection-state-recovery-example/esm/index.html b/examples/connection-state-recovery-example/esm/index.html new file mode 100644 index 0000000000..18b3573de5 --- /dev/null +++ b/examples/connection-state-recovery-example/esm/index.html @@ -0,0 +1,49 @@ + + + + + Connection state recovery | Socket.IO + + +

    Status: disconnected

    +

    Recovered? -

    + +

    Latest messages:

    +
      + + + + + diff --git a/examples/connection-state-recovery-example/esm/index.js b/examples/connection-state-recovery-example/esm/index.js new file mode 100644 index 0000000000..96d054a973 --- /dev/null +++ b/examples/connection-state-recovery-example/esm/index.js @@ -0,0 +1,53 @@ +import { readFile } from "node:fs/promises"; +import { createServer } from "node:http"; +import { Server } from "socket.io"; + +const httpServer = createServer(async (req, res) => { + if (req.url !== "/") { + res.writeHead(404); + res.end("Not found"); + return; + } + // reload the file every time + const content = await readFile("index.html"); + const length = Buffer.byteLength(content); + + res.writeHead(200, { + "Content-Type": "text/html", + "Content-Length": length, + }); + res.end(content); +}); + +const io = new Server(httpServer, { + connectionStateRecovery: { + // the backup duration of the sessions and the packets + maxDisconnectionDuration: 2 * 60 * 1000, + // whether to skip middlewares upon successful recovery + skipMiddlewares: true, + }, +}); + +io.on("connection", (socket) => { + console.log(`connect ${socket.id}`); + + if (socket.recovered) { + console.log("recovered!"); + console.log("socket.rooms:", socket.rooms); + console.log("socket.data:", socket.data); + } else { + console.log("new connection"); + socket.join("sample room"); + socket.data.foo = "bar"; + } + + socket.on("disconnect", (reason) => { + console.log(`disconnect ${socket.id} due to ${reason}`); + }); +}); + +setInterval(() => { + io.emit("ping", new Date().toISOString()); +}, 1000); + +httpServer.listen(3000); diff --git a/examples/connection-state-recovery-example/esm/package.json b/examples/connection-state-recovery-example/esm/package.json new file mode 100644 index 0000000000..11b42eec8e --- /dev/null +++ b/examples/connection-state-recovery-example/esm/package.json @@ -0,0 +1,13 @@ +{ + "name": "connection-state-recovery-example", + "version": "0.0.1", + "private": true, + "type": "module", + "description": "Example with connection state recovery", + "scripts": { + "start": "node index.js" + }, + "dependencies": { + "socket.io": "^4.7.2" + } +}