PageSourceSearch

https://socket.io/assets/js/0925fd45.bae0cca7.js

js socket.io collected 2026-09-24 07:24:16 UTC 10,578 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunksample_website=self.webpackChunksample_website||[]).push([[1805],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=p(a),m=r,k=u["".concat(s,".").concat(m)]||u[m]||c[m]||i;return a?n.createElement(k,l(l({ref:t},d),{},{components:a})):n.createElement(k,l({ref:t},d))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:r,l[1]=o;for(var p=2;p<i;p++)l[p]=a[p];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},6401:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var n=a(3117),r=(a(7294),a(3905));const i={title:"Azure Service Bus adapter",sidebar_position:9,slug:"/azure-service-bus-adapter/"},l=void 0,o={unversionedId:"categories/Adapters/adapter-azure-service-bus",id:"categories/Adapters/adapter-azure-service-bus",title:"Azure Service Bus adapter",description:"How it works",source:"@site/docs/categories/05-Adapters/adapter-azure-service-bus.md",sourceDirName:"categories/05-Adapters",slug:"/azure-service-bus-adapter/",permalink:"/docs/v4/azure-service-bus-adapter/",draft:!1,editUrl:"https://github.com/socketio/socket.io-website/edit/main/docs/categories/05-Adapters/adapter-azure-service-bus.md",tags:[],version:"current",lastUpdatedAt:1784117104,formattedLastUpdatedAt:"Jul 15, 2026",sidebarPosition:9,frontMatter:{title:"Azure Service Bus adapter",sidebar_position:9,slug:"/azure-service-bus-adapter/"},sidebar:"sidebar",previous:{title:"AWS SQS adapter",permalink:"/docs/v4/aws-sqs-adapter/"},next:{title:"Namespaces",permalink:"/docs/v4/namespaces/"}},s={},p=[{value:"How it works",id:"how-it-works",level:2},{value:"Supported features",id:"supported-features",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Options",id:"options",level:2},{value:"Latest releases",id:"latest-releases",level:2}],d={toc:p},u="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"how-it-works"},"How it works"),(0,r.kt)("p",null,"This adapter uses ",(0,r.kt)("a",{parentName:"p",href:"https://learn.microsoft.com/en-us/azure/service-bus-messaging"},"Azure Service Bus service")," to forward messages between the nodes of a Socket.IO cluster."),(0,r.kt)("p",null,"The source code of this adapter can be found ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/socketio/socket.io-azure-service-bus-adapter"},"here"),"."),(0,r.kt)("h2",{id:"supported-features"},"Supported features"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Feature"),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"th"},"socket.io")," version"),(0,r.kt)("th",{parentName:"tr",align:null},"Support"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Socket management"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"4.0.0")),(0,r.kt)("td",{parentName:"tr",align:null},"\u2705 YES (since version ",(0,r.kt)("inlineCode",{parentName:"td"},"0.1.0"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Inter-server communication"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"4.1.0")),(0,r.kt)("td",{parentName:"tr",align:null},"\u2705 YES (since version ",(0,r.kt)("inlineCode",{parentName:"td"},"0.1.0"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Broadcast with acknowledgements"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/docs/v4/changelog/4.5.0"},(0,r.kt)("inlineCode",{parentName:"a"},"4.5.0"))),(0,r.kt)("td",{parentName:"tr",align:null},"\u2705 YES (since version ",(0,r.kt)("inlineCode",{parentName:"td"},"0.1.0"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Connection state recovery"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/docs/v4/changelog/4.6.0"},(0,r.kt)("inlineCode",{parentName:"a"},"4.6.0"))),(0,r.kt)("td",{parentName:"tr",align:null},"\u274c NO")))),(0,r.kt)("h2",{id:"installation"},"Installation"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"npm install @socket.io/azure-service-bus-adapter\n")),(0,r.kt)("h2",{id:"usage"},"Usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},'import { ServiceBusClient, ServiceBusAdministrationClient } from "@azure/service-bus";\nimport { Server } from "socket.io";\nimport { createAdapter } from "@socket.io/azure-service-bus-adapter";\n\nconst connectionString = "Endpoint=...";\n\nconst serviceBusClient = new ServiceBusClient(connectionString);\nconst serviceBusAdminClient = new ServiceBusAdministrationClient(connectionString);\n\nconst io = new Server({\n  adapter: createAdapter(serviceBusClient, serviceBusAdminClient)\n});\n\n// wait for the creation of the subscription\nawait io.of("/").adapter.init();\n\nio.listen(3000);\n')),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"),(0,r.kt)("th",{parentName:"tr",align:null},"Default value"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"topicName")),(0,r.kt)("td",{parentName:"tr",align:null},"The name of the topic."),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"socket.io"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"topicOptions")),(0,r.kt)("td",{parentName:"tr",align:null},"The options used to create the topic."),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"subscriptionPrefix")),(0,r.kt)("td",{parentName:"tr",align:null},"The prefix of the subscription (one subscription will be created per Socket.IO server in the cluster)."),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"socket.io"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"receiverOptions")),(0,r.kt)("td",{parentName:"tr",align:null},"The options used to create the subscription."),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"topicOptions")),(0,r.kt)("td",{parentName:"tr",align:null},"The options used to create the receiver."),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"heartbeatInterval")),(0,r.kt)("td",{parentName:"tr",align:null},"The number of ms between two heartbeats."),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"5_000"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"heartbeatTimeout")),(0,r.kt)("td",{parentName:"tr",align:null},"The number of ms without heartbeat before we consider a node down."),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"10_000"))))),(0,r.kt)("h2",{id:"latest-releases"},"Latest releases"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Version"),(0,r.kt)("th",{parentName:"tr",align:null},"Release date"),(0,r.kt)("th",{parentName:"tr",align:null},"Release notes"),(0,r.kt)("th",{parentName:"tr",align:null},"Diff"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"0.1.0")),(0,r.kt)("td",{parentName:"tr",align:null},"March 2024"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"https://github.com/socketio/socket.io-azure-service-bus-adapter/releases/tag/0.1.0"},"link")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"-"))))),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/socketio/socket.io-azure-service-bus-adapter/blob/main/CHANGELOG.md"},"Complete changelog")))}c.isMDXComponent=!0}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.