{"_id":"@socket.io/gcp-pubsub-adapter","_rev":"3-274ff2f576a3bd61d465237cda0aac9a","name":"@socket.io/gcp-pubsub-adapter","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@socket.io/gcp-pubsub-adapter","version":"0.1.0","keywords":["socket.io","google cloud platform","gcp","pubsub"],"license":"MIT","_id":"@socket.io/gcp-pubsub-adapter@0.1.0","maintainers":[{"name":"darrachequesne","email":"damien.arrachequesne@gmail.com"}],"homepage":"https://github.com/socketio/socket.io-gcloud-pubsub-adapter#readme","bugs":{"url":"https://github.com/socketio/socket.io-gcloud-pubsub-adapter/issues"},"dist":{"shasum":"08aa032fa77d98f188a5d73b990ecebc8f709d13","tarball":"https://registry.npmjs.org/@socket.io/gcp-pubsub-adapter/-/gcp-pubsub-adapter-0.1.0.tgz","fileCount":5,"integrity":"sha512-JLFruhqqtXlHmgla4TlBAWPOuhaW341AKxAzVtM0YcZUlpTbm90XZySlbOUnG/gp9REc8H7H2bx7Roi0p2xXEA==","signatures":[{"sig":"MEUCIDt1QH5NjPZaLtff7L+KwzIEbnTd4uisTg8b1TJUMKoxAiEAwDulww+IT+YIN0pOw8abGKSLUAB56Yk0pocD/7sH8zc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11059},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d784f6740d7175137f288675dd01719ee90a6042","scripts":{"test":"npm run format:check && tsc && nyc mocha --require ts-node/register --timeout 10000 test/index.ts","compile":"rimraf ./dist && tsc","prepack":"npm run compile","format:fix":"prettier --parser typescript --write 'lib/**/*.ts' 'test/**/*.ts'","format:check":"prettier --parser typescript --check 'lib/**/*.ts' 'test/**/*.ts'"},"_npmUser":{"name":"darrachequesne","email":"damien.arrachequesne@gmail.com"},"repository":{"url":"git+ssh://git@github.com/socketio/socket.io-gcloud-pubsub-adapter.git","type":"git"},"_npmVersion":"9.6.7","description":"The Socket.IO adapter for Google Cloud pub/sub, allowing to broadcast events between several Socket.IO servers","directories":{},"_nodeVersion":"20.3.0","dependencies":{"debug":"~4.3.4","@msgpack/msgpack":"^2.8.0","@google-cloud/pubsub":"^4.3.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","mocha":"^10.2.0","rimraf":"^5.0.5","ts-node":"^10.9.1","prettier":"^2.1.2","expect.js":"0.3.1","socket.io":"^4.6.1","typescript":"^4.9.4","@types/node":"^14.14.7","@types/mocha":"^10.0.6","@types/expect.js":"^0.3.29","socket.io-client":"^4.6.1"},"peerDependencies":{"socket.io-adapter":"^2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/gcp-pubsub-adapter_0.1.0_1710856151950_0.3053740418128641","host":"s3://npm-registry-packages"}},"0.1.1":{"_id":"@socket.io/gcp-pubsub-adapter@0.1.1","bugs":{"url":"https://github.com/socketio/socket.io-gcp-pubsub-adapter/issues"},"dist":{"shasum":"cb34621a28fb28987aa06618dba0a10ed02e86fc","tarball":"https://registry.npmjs.org/@socket.io/gcp-pubsub-adapter/-/gcp-pubsub-adapter-0.1.1.tgz","integrity":"sha512-gWd5nCz4iLiixHZP5I4WWT5EogUNNyBMzFW7smBPbXS8A0BiMQIZ9R9kEk1wZ9TFlHkrF4WVMy1xNtFC0N3bQw==","fileCount":5,"unpackedSize":11230,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@socket.io%2fgcp-pubsub-adapter@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF+mjms/l+UfxtQKzM+rCKCRFNkpQM761Kx7Ci2wOUUtAiBefQ/tnf/Iqc6tHrjDTABq1XSZnHkYvS9JPyV247pZVA=="}]},"main":"./dist/index.js","name":"@socket.io/gcp-pubsub-adapter","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"37bcb506069b0cdbd692d68c7f6f820adbcc3d12","license":"MIT","scripts":{"test":"npm run format:check && tsc && nyc mocha --require ts-node/register --timeout 10000 test/index.ts","compile":"rimraf ./dist && tsc","prepack":"npm run compile","format:fix":"prettier --parser typescript --write 'lib/**/*.ts' 'test/**/*.ts'","format:check":"prettier --parser typescript --check 'lib/**/*.ts' 'test/**/*.ts'"},"version":"0.1.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eae919d2-4b5b-4752-835c-ae80f6a1fc2c"},"approver":{"name":"darrachequesne","email":"damien.arrachequesne@gmail.com"}},"homepage":"https://github.com/socketio/socket.io-gcp-pubsub-adapter#readme","keywords":["socket.io","google cloud platform","gcp","pubsub"],"repository":{"url":"git+ssh://git@github.com/socketio/socket.io-gcp-pubsub-adapter.git","type":"git"},"_npmVersion":"11.19.1","description":"The Socket.IO adapter for Google Cloud pub/sub, allowing to broadcast events between several Socket.IO servers","directories":{},"maintainers":[{"name":"darrachequesne","email":"damien.arrachequesne@gmail.com"}],"_nodeVersion":"26.8.2","dependencies":{"debug":"~4.3.4","@msgpack/msgpack":"^2.8.0","@google-cloud/pubsub":"^4.3.3"},"devDependencies":{"nyc":"^15.1.0","mocha":"^10.2.0","rimraf":"^5.0.5","ts-node":"^10.9.1","prettier":"^2.1.2","expect.js":"0.3.1","socket.io":"^4.6.1","typescript":"^4.9.4","@types/node":"^14.14.7","@types/mocha":"^10.0.6","@types/expect.js":"^0.3.29","socket.io-client":"^4.6.1"},"peerDependencies":{"socket.io-adapter":"^2.5.4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gcp-pubsub-adapter_0.1.1_1789461362818_0.26256784365294394"},"_hasShrinkwrap":false}},"time":{"created":"2024-03-19T13:49:11.949Z","modified":"2026-09-15T08:36:03.268Z","0.1.0":"2024-03-19T13:49:12.114Z","0.1.1":"2026-09-15T08:36:02.919Z"},"bugs":{"url":"https://github.com/socketio/socket.io-gcp-pubsub-adapter/issues"},"license":"MIT","homepage":"https://github.com/socketio/socket.io-gcp-pubsub-adapter#readme","keywords":["socket.io","google cloud platform","gcp","pubsub"],"repository":{"url":"git+ssh://git@github.com/socketio/socket.io-gcp-pubsub-adapter.git","type":"git"},"description":"The Socket.IO adapter for Google Cloud pub/sub, allowing to broadcast events between several Socket.IO servers","maintainers":[{"name":"darrachequesne","email":"damien.arrachequesne@gmail.com"}],"readme":"# Socket.IO Google Cloud pub/sub adapter\n\nThe `@socket.io/gcp-pubsub-adapter` package allows broadcasting packets between multiple Socket.IO servers.\n\n**Table of contents**\n\n- [Supported features](#supported-features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Options](#options)\n- [License](#license)\n\n## Supported features\n\n| Feature                         | `socket.io` version | Support                                        |\n|---------------------------------|---------------------|------------------------------------------------|\n| Socket management               | `4.0.0`             | :white_check_mark: YES (since version `0.1.0`) |\n| Inter-server communication      | `4.1.0`             | :white_check_mark: YES (since version `0.1.0`) |\n| Broadcast with acknowledgements | `4.5.0`             | :white_check_mark: YES (since version `0.1.0`) |\n| Connection state recovery       | `4.6.0`             | :x: NO                                         |\n\n## Installation\n\n```\nnpm install @socket.io/gcp-pubsub-adapter\n```\n\n## Usage\n\n```js\nimport { PubSub } from \"@google-cloud/pubsub\";\nimport { Server } from \"socket.io\";\nimport { createAdapter } from \"@socket.io/gcp-pubsub-adapter\";\n\nconst pubsub = new PubSub({\n  projectId: \"your-project-id\"\n});\n\nconst topic = pubsub.topic(topicNameOrId);\n\nconst io = new Server({\n  adapter: createAdapter(topic)\n});\n\ntry {\n  // wait for the creation of the pub/sub subscription\n  await io.of(\"/\").adapter.init();\n} catch (err) {\n  console.error(err);\n  process.exitCode = 1;\n}\n\nconst gracefulShutdown = async () => {\n  try {\n    // wait for the deletion of the pub/sub subscription\n    await io.close();\n  } catch (err) {\n    console.error(err);\n    process.exitCode = 1;\n  }\n};\n\nprocess.once(\"SIGINT\", gracefulShutdown);\nprocess.once(\"SIGTERM\", gracefulShutdown);\n\nio.listen(3000);\n```\n\n## Options\n\n| Name                  | Description                                                                                                       | Default value  |\n|-----------------------|-------------------------------------------------------------------------------------------------------------------|----------------|\n| `subscriptionPrefix`  | The prefix for the new subscription to create.                                                                    | `socket.io`    |\n| `subscriptionOptions` | The options used to create the subscription.                                                                      | `-`            |\n| `heartbeatInterval`   | The number of ms between two heartbeats.                                                                          | `5_000`        |\n| `heartbeatTimeout`    | The number of ms without heartbeat before we consider a node down.                                                | `10_000`       |\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}