[{"data":1,"prerenderedAt":1064},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fquick-start":116,"\u002Fgetting-started\u002Fquick-start-surround":1059},[4,23,61,82,108,112],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":22},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",false,{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":22},"Guides","i-lucide-book-open","\u002Fguides","2.guides",[29,33,37,41,45,49,53,57],{"title":30,"path":31,"stem":32},"Connection & config","\u002Fguides\u002Fconnection","2.guides\u002F1.connection",{"title":34,"path":35,"stem":36},"Publish, RPC, history, presence","\u002Fguides\u002Foperations","2.guides\u002F2.operations",{"title":38,"path":39,"stem":40},"Events","\u002Fguides\u002Fevents","2.guides\u002F3.events",{"title":42,"path":43,"stem":44},"Subscriptions","\u002Fguides\u002Fsubscriptions","2.guides\u002F4.subscriptions",{"title":46,"path":47,"stem":48},"Tokens","\u002Fguides\u002Ftokens","2.guides\u002F5.tokens",{"title":50,"path":51,"stem":52},"Payloads (base64 vs rawJson)","\u002Fguides\u002Fpayloads","2.guides\u002F6.payloads",{"title":54,"path":55,"stem":56},"Rust backend","\u002Fguides\u002Frust","2.guides\u002F7.rust",{"title":58,"path":59,"stem":60},"Permissions","\u002Fguides\u002Fpermissions","2.guides\u002F8.permissions",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":22},"API reference","i-lucide-file-code","\u002Freference","3.reference",[67,71,75,79],{"title":68,"path":69,"stem":70},"JavaScript API","\u002Freference\u002Fjavascript-api","3.reference\u002F1.javascript-api",{"title":72,"path":73,"stem":74},"Types","\u002Freference\u002Ftypes","3.reference\u002F2.types",{"title":76,"path":77,"stem":78},"Tauri commands","\u002Freference\u002Fcommands","3.reference\u002F3.commands",{"title":58,"path":80,"stem":81},"\u002Freference\u002Fpermissions","3.reference\u002F4.permissions",{"title":83,"icon":84,"path":85,"stem":86,"children":87,"page":22},"Platforms","i-lucide-monitor-smartphone","\u002Fplatforms","4.platforms",[88,92,96,100,104],{"title":89,"path":90,"stem":91},"Overview","\u002Fplatforms\u002Foverview","4.platforms\u002F1.overview",{"title":93,"path":94,"stem":95},"Desktop","\u002Fplatforms\u002Fdesktop","4.platforms\u002F2.desktop",{"title":97,"path":98,"stem":99},"Android","\u002Fplatforms\u002Fandroid","4.platforms\u002F3.android",{"title":101,"path":102,"stem":103},"iOS","\u002Fplatforms\u002Fios","4.platforms\u002F4.ios",{"title":105,"path":106,"stem":107},"Centrifugo server","\u002Fplatforms\u002Fserver","4.platforms\u002F5.server",{"title":109,"path":110,"stem":111},"Deprecations","\u002Fdeprecations","5.deprecations",{"title":113,"path":114,"stem":115},"Changelog","\u002Fchangelog","9.changelog",{"id":117,"title":19,"body":118,"description":1053,"extension":1054,"generated":22,"links":1055,"meta":1056,"navigation":247,"path":20,"seo":1057,"stem":21,"__hash__":1058},"docs\u002F1.getting-started\u002F3.quick-start.md",{"type":119,"value":120,"toc":1049},"minimark",[121,130,885,888,915,920,923,945,976,983,987,1028,1045],[122,123,124,125,129],"p",{},"The client lives in Rust; the frontend starts it with ",[126,127,128],"code",{},"connect()"," and gets everything back as\nevents. Set up the listeners first, then connect.",[131,132,138],"pre",{"className":133,"code":134,"filename":135,"language":136,"meta":137,"style":137},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {\n  connect, disconnect, addSubscription,\n  onConnecting, onConnected, onDisconnected, onError,\n  onSubscribed, onPublication, helpers, utils,\n} from \"tauri-plugin-centrifugo-api\";\n\nconst unlisten = [\n  await onConnecting(({ payload }) => console.log(\"connecting\", payload.code, payload.reason)),\n  await onConnected(({ payload }) => console.log(\"connected, client\", payload.client)),\n  await onDisconnected(({ payload }) => console.log(\"disconnected\", payload.code, payload.reason)),\n  await onError(({ payload }) => console.error(payload.channel ?? \"client\", payload.error)),\n  await onSubscribed(({ payload }) => console.log(\"subscribed to\", payload.channel)),\n  await onPublication(({ payload }) => {\n    \u002F\u002F `rawJson` is set when the data is valid JSON; `data` is always base64.\n    console.log(payload.channel, payload.rawJson ?? utils.decode(payload.data));\n  }),\n];\n\nawait connect({\n  url: \"ws:\u002F\u002Flocalhost:8000\u002Fconnection\u002Fwebsocket\",\n  token: \"\u003Cconnection JWT>\", \u002F\u002F omit for anonymous connections\n  channels: [\"news\"],        \u002F\u002F subscribed with default options\n  useProtobuf: false,\n});\n\n\u002F\u002F connect() returns at once; wait for the `connected` state before calling the server.\nif (await helpers.waitForConnection(5000)) {\n  await addSubscription(\"chat\");\n  await helpers.publishJson(\"news\", { text: \"hello\" });\n}\n\n\u002F\u002F Later:\nawait disconnect();\nunlisten.forEach((fn) => fn());\n","main.ts","ts","",[126,139,140,153,174,197,220,242,249,265,328,371,421,474,518,537,544,598,609,617,622,636,654,674,699,713,722,727,733,762,782,826,832,837,843,855],{"__ignoreMap":137},[141,142,145,149],"span",{"class":143,"line":144},"line",1,[141,146,148],{"class":147},"s7zQu","import",[141,150,152],{"class":151},"sMK4o"," {\n",[141,154,156,160,163,166,168,171],{"class":143,"line":155},2,[141,157,159],{"class":158},"sTEyZ","  connect",[141,161,162],{"class":151},",",[141,164,165],{"class":158}," disconnect",[141,167,162],{"class":151},[141,169,170],{"class":158}," addSubscription",[141,172,173],{"class":151},",\n",[141,175,177,180,182,185,187,190,192,195],{"class":143,"line":176},3,[141,178,179],{"class":158},"  onConnecting",[141,181,162],{"class":151},[141,183,184],{"class":158}," onConnected",[141,186,162],{"class":151},[141,188,189],{"class":158}," onDisconnected",[141,191,162],{"class":151},[141,193,194],{"class":158}," onError",[141,196,173],{"class":151},[141,198,200,203,205,208,210,213,215,218],{"class":143,"line":199},4,[141,201,202],{"class":158},"  onSubscribed",[141,204,162],{"class":151},[141,206,207],{"class":158}," onPublication",[141,209,162],{"class":151},[141,211,212],{"class":158}," helpers",[141,214,162],{"class":151},[141,216,217],{"class":158}," utils",[141,219,173],{"class":151},[141,221,223,226,229,232,236,239],{"class":143,"line":222},5,[141,224,225],{"class":151},"}",[141,227,228],{"class":147}," from",[141,230,231],{"class":151}," \"",[141,233,235],{"class":234},"sfazB","tauri-plugin-centrifugo-api",[141,237,238],{"class":151},"\"",[141,240,241],{"class":151},";\n",[141,243,245],{"class":143,"line":244},6,[141,246,248],{"emptyLinePlaceholder":247},true,"\n",[141,250,252,256,259,262],{"class":143,"line":251},7,[141,253,255],{"class":254},"spNyl","const",[141,257,258],{"class":158}," unlisten ",[141,260,261],{"class":151},"=",[141,263,264],{"class":158}," [\n",[141,266,268,271,275,278,281,285,288,291,294,297,300,302,304,307,309,311,313,315,317,319,321,323,326],{"class":143,"line":267},8,[141,269,270],{"class":147},"  await",[141,272,274],{"class":273},"s2Zo4"," onConnecting",[141,276,277],{"class":158},"(",[141,279,280],{"class":151},"({",[141,282,284],{"class":283},"sHdIc"," payload",[141,286,287],{"class":151}," })",[141,289,290],{"class":254}," =>",[141,292,293],{"class":158}," console",[141,295,296],{"class":151},".",[141,298,299],{"class":273},"log",[141,301,277],{"class":158},[141,303,238],{"class":151},[141,305,306],{"class":234},"connecting",[141,308,238],{"class":151},[141,310,162],{"class":151},[141,312,284],{"class":158},[141,314,296],{"class":151},[141,316,126],{"class":158},[141,318,162],{"class":151},[141,320,284],{"class":158},[141,322,296],{"class":151},[141,324,325],{"class":158},"reason))",[141,327,173],{"class":151},[141,329,331,333,335,337,339,341,343,345,347,349,351,353,355,358,360,362,364,366,369],{"class":143,"line":330},9,[141,332,270],{"class":147},[141,334,184],{"class":273},[141,336,277],{"class":158},[141,338,280],{"class":151},[141,340,284],{"class":283},[141,342,287],{"class":151},[141,344,290],{"class":254},[141,346,293],{"class":158},[141,348,296],{"class":151},[141,350,299],{"class":273},[141,352,277],{"class":158},[141,354,238],{"class":151},[141,356,357],{"class":234},"connected, client",[141,359,238],{"class":151},[141,361,162],{"class":151},[141,363,284],{"class":158},[141,365,296],{"class":151},[141,367,368],{"class":158},"client))",[141,370,173],{"class":151},[141,372,374,376,378,380,382,384,386,388,390,392,394,396,398,401,403,405,407,409,411,413,415,417,419],{"class":143,"line":373},10,[141,375,270],{"class":147},[141,377,189],{"class":273},[141,379,277],{"class":158},[141,381,280],{"class":151},[141,383,284],{"class":283},[141,385,287],{"class":151},[141,387,290],{"class":254},[141,389,293],{"class":158},[141,391,296],{"class":151},[141,393,299],{"class":273},[141,395,277],{"class":158},[141,397,238],{"class":151},[141,399,400],{"class":234},"disconnected",[141,402,238],{"class":151},[141,404,162],{"class":151},[141,406,284],{"class":158},[141,408,296],{"class":151},[141,410,126],{"class":158},[141,412,162],{"class":151},[141,414,284],{"class":158},[141,416,296],{"class":151},[141,418,325],{"class":158},[141,420,173],{"class":151},[141,422,424,426,428,430,432,434,436,438,440,442,445,448,450,453,456,458,461,463,465,467,469,472],{"class":143,"line":423},11,[141,425,270],{"class":147},[141,427,194],{"class":273},[141,429,277],{"class":158},[141,431,280],{"class":151},[141,433,284],{"class":283},[141,435,287],{"class":151},[141,437,290],{"class":254},[141,439,293],{"class":158},[141,441,296],{"class":151},[141,443,444],{"class":273},"error",[141,446,447],{"class":158},"(payload",[141,449,296],{"class":151},[141,451,452],{"class":158},"channel ",[141,454,455],{"class":151},"??",[141,457,231],{"class":151},[141,459,460],{"class":234},"client",[141,462,238],{"class":151},[141,464,162],{"class":151},[141,466,284],{"class":158},[141,468,296],{"class":151},[141,470,471],{"class":158},"error))",[141,473,173],{"class":151},[141,475,477,479,482,484,486,488,490,492,494,496,498,500,502,505,507,509,511,513,516],{"class":143,"line":476},12,[141,478,270],{"class":147},[141,480,481],{"class":273}," onSubscribed",[141,483,277],{"class":158},[141,485,280],{"class":151},[141,487,284],{"class":283},[141,489,287],{"class":151},[141,491,290],{"class":254},[141,493,293],{"class":158},[141,495,296],{"class":151},[141,497,299],{"class":273},[141,499,277],{"class":158},[141,501,238],{"class":151},[141,503,504],{"class":234},"subscribed to",[141,506,238],{"class":151},[141,508,162],{"class":151},[141,510,284],{"class":158},[141,512,296],{"class":151},[141,514,515],{"class":158},"channel))",[141,517,173],{"class":151},[141,519,521,523,525,527,529,531,533,535],{"class":143,"line":520},13,[141,522,270],{"class":147},[141,524,207],{"class":273},[141,526,277],{"class":158},[141,528,280],{"class":151},[141,530,284],{"class":283},[141,532,287],{"class":151},[141,534,290],{"class":254},[141,536,152],{"class":151},[141,538,540],{"class":143,"line":539},14,[141,541,543],{"class":542},"sHwdD","    \u002F\u002F `rawJson` is set when the data is valid JSON; `data` is always base64.\n",[141,545,547,550,552,554,557,560,562,565,567,569,571,574,577,579,581,584,586,588,590,593,596],{"class":143,"line":546},15,[141,548,549],{"class":158},"    console",[141,551,296],{"class":151},[141,553,299],{"class":273},[141,555,277],{"class":556},"swJcz",[141,558,559],{"class":158},"payload",[141,561,296],{"class":151},[141,563,564],{"class":158},"channel",[141,566,162],{"class":151},[141,568,284],{"class":158},[141,570,296],{"class":151},[141,572,573],{"class":158},"rawJson",[141,575,576],{"class":151}," ??",[141,578,217],{"class":158},[141,580,296],{"class":151},[141,582,583],{"class":273},"decode",[141,585,277],{"class":556},[141,587,559],{"class":158},[141,589,296],{"class":151},[141,591,592],{"class":158},"data",[141,594,595],{"class":556},"))",[141,597,241],{"class":151},[141,599,601,604,607],{"class":143,"line":600},16,[141,602,603],{"class":151},"  }",[141,605,606],{"class":158},")",[141,608,173],{"class":151},[141,610,612,615],{"class":143,"line":611},17,[141,613,614],{"class":158},"]",[141,616,241],{"class":151},[141,618,620],{"class":143,"line":619},18,[141,621,248],{"emptyLinePlaceholder":247},[141,623,625,628,631,633],{"class":143,"line":624},19,[141,626,627],{"class":147},"await",[141,629,630],{"class":273}," connect",[141,632,277],{"class":158},[141,634,635],{"class":151},"{\n",[141,637,639,642,645,647,650,652],{"class":143,"line":638},20,[141,640,641],{"class":556},"  url",[141,643,644],{"class":151},":",[141,646,231],{"class":151},[141,648,649],{"class":234},"ws:\u002F\u002Flocalhost:8000\u002Fconnection\u002Fwebsocket",[141,651,238],{"class":151},[141,653,173],{"class":151},[141,655,657,660,662,664,667,669,671],{"class":143,"line":656},21,[141,658,659],{"class":556},"  token",[141,661,644],{"class":151},[141,663,231],{"class":151},[141,665,666],{"class":234},"\u003Cconnection JWT>",[141,668,238],{"class":151},[141,670,162],{"class":151},[141,672,673],{"class":542}," \u002F\u002F omit for anonymous connections\n",[141,675,677,680,682,685,687,690,692,694,696],{"class":143,"line":676},22,[141,678,679],{"class":556},"  channels",[141,681,644],{"class":151},[141,683,684],{"class":158}," [",[141,686,238],{"class":151},[141,688,689],{"class":234},"news",[141,691,238],{"class":151},[141,693,614],{"class":158},[141,695,162],{"class":151},[141,697,698],{"class":542},"        \u002F\u002F subscribed with default options\n",[141,700,702,705,707,711],{"class":143,"line":701},23,[141,703,704],{"class":556},"  useProtobuf",[141,706,644],{"class":151},[141,708,710],{"class":709},"sfNiH"," false",[141,712,173],{"class":151},[141,714,716,718,720],{"class":143,"line":715},24,[141,717,225],{"class":151},[141,719,606],{"class":158},[141,721,241],{"class":151},[141,723,725],{"class":143,"line":724},25,[141,726,248],{"emptyLinePlaceholder":247},[141,728,730],{"class":143,"line":729},26,[141,731,732],{"class":542},"\u002F\u002F connect() returns at once; wait for the `connected` state before calling the server.\n",[141,734,736,739,742,744,746,748,751,753,757,760],{"class":143,"line":735},27,[141,737,738],{"class":147},"if",[141,740,741],{"class":158}," (",[141,743,627],{"class":147},[141,745,212],{"class":158},[141,747,296],{"class":151},[141,749,750],{"class":273},"waitForConnection",[141,752,277],{"class":158},[141,754,756],{"class":755},"sbssI","5000",[141,758,759],{"class":158},")) ",[141,761,635],{"class":151},[141,763,765,767,769,771,773,776,778,780],{"class":143,"line":764},28,[141,766,270],{"class":147},[141,768,170],{"class":273},[141,770,277],{"class":556},[141,772,238],{"class":151},[141,774,775],{"class":234},"chat",[141,777,238],{"class":151},[141,779,606],{"class":556},[141,781,241],{"class":151},[141,783,785,787,789,791,794,796,798,800,802,804,807,810,812,814,817,819,822,824],{"class":143,"line":784},29,[141,786,270],{"class":147},[141,788,212],{"class":158},[141,790,296],{"class":151},[141,792,793],{"class":273},"publishJson",[141,795,277],{"class":556},[141,797,238],{"class":151},[141,799,689],{"class":234},[141,801,238],{"class":151},[141,803,162],{"class":151},[141,805,806],{"class":151}," {",[141,808,809],{"class":556}," text",[141,811,644],{"class":151},[141,813,231],{"class":151},[141,815,816],{"class":234},"hello",[141,818,238],{"class":151},[141,820,821],{"class":151}," }",[141,823,606],{"class":556},[141,825,241],{"class":151},[141,827,829],{"class":143,"line":828},30,[141,830,831],{"class":151},"}\n",[141,833,835],{"class":143,"line":834},31,[141,836,248],{"emptyLinePlaceholder":247},[141,838,840],{"class":143,"line":839},32,[141,841,842],{"class":542},"\u002F\u002F Later:\n",[141,844,846,848,850,853],{"class":143,"line":845},33,[141,847,627],{"class":147},[141,849,165],{"class":273},[141,851,852],{"class":158},"()",[141,854,241],{"class":151},[141,856,858,861,863,866,868,870,873,875,877,880,883],{"class":143,"line":857},34,[141,859,860],{"class":158},"unlisten",[141,862,296],{"class":151},[141,864,865],{"class":273},"forEach",[141,867,277],{"class":158},[141,869,277],{"class":151},[141,871,872],{"class":283},"fn",[141,874,606],{"class":151},[141,876,290],{"class":254},[141,878,879],{"class":273}," fn",[141,881,882],{"class":158},"())",[141,884,241],{"class":151},[122,886,887],{},"What next:",[889,890,891,901,906],"ul",{},[892,893,894,897,898,900],"li",{},[895,896,30],"a",{"href":31},": every ",[126,899,128],{}," option, transports, state.",[892,902,903,905],{},[895,904,46],{"href":47},": JWTs that expire, tokens fetched by the frontend.",[892,907,908,910,911,914],{},[895,909,42],{"href":43},": recovery, ",[126,912,913],{},"since",", delta, join\u002Fleave.",[916,917,919],"h2",{"id":918},"example-app","Example app",[122,921,922],{},"The repository has a Vue example app and a Centrifugo config for it:",[131,924,928],{"className":925,"code":926,"language":927,"meta":137,"style":137},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","centrifugo --config examples\u002Fserver\u002Fcentrifugo.json   # listens on :8001\n","bash",[126,929,930],{"__ignoreMap":137},[141,931,932,936,939,942],{"class":143,"line":144},[141,933,935],{"class":934},"sBMFI","centrifugo",[141,937,938],{"class":234}," --config",[141,940,941],{"class":234}," examples\u002Fserver\u002Fcentrifugo.json",[141,943,944],{"class":542},"   # listens on :8001\n",[131,946,948],{"className":925,"code":947,"language":927,"meta":137,"style":137},"cd examples\u002Ftauri-app\npnpm install\npnpm tauri dev\n",[126,949,950,958,966],{"__ignoreMap":137},[141,951,952,955],{"class":143,"line":144},[141,953,954],{"class":273},"cd",[141,956,957],{"class":234}," examples\u002Ftauri-app\n",[141,959,960,963],{"class":143,"line":155},[141,961,962],{"class":934},"pnpm",[141,964,965],{"class":234}," install\n",[141,967,968,970,973],{"class":143,"line":176},[141,969,962],{"class":934},[141,971,972],{"class":234}," tauri",[141,974,975],{"class":234}," dev\n",[122,977,978,979,982],{},"Connect it to ",[126,980,981],{},"ws:\u002F\u002Flocalhost:8001\u002Fconnection\u002Fwebsocket",". The config allows anonymous clients to\nsubscribe, publish and read history, and enables presence, join\u002Fleave and HTTP streaming — for\nlocal testing only.",[916,984,986],{"id":985},"development","Development",[131,988,990],{"className":925,"code":989,"language":927,"meta":137,"style":137},"cargo build && cargo test   # unit tests + end-to-end tests against a real Centrifugo\npnpm build && pnpm test     # guest-js: build + dist checks, unit tests\n",[126,991,992,1012],{"__ignoreMap":137},[141,993,994,997,1000,1003,1006,1009],{"class":143,"line":144},[141,995,996],{"class":934},"cargo",[141,998,999],{"class":234}," build",[141,1001,1002],{"class":151}," &&",[141,1004,1005],{"class":934}," cargo",[141,1007,1008],{"class":234}," test",[141,1010,1011],{"class":542},"   # unit tests + end-to-end tests against a real Centrifugo\n",[141,1013,1014,1016,1018,1020,1023,1025],{"class":143,"line":155},[141,1015,962],{"class":934},[141,1017,999],{"class":234},[141,1019,1002],{"class":151},[141,1021,1022],{"class":934}," pnpm",[141,1024,1008],{"class":234},[141,1026,1027],{"class":542},"     # guest-js: build + dist checks, unit tests\n",[122,1029,1030,1033,1034,1036,1037,1040,1041,1044],{},[126,1031,1032],{},"cargo test"," starts the ",[126,1035,935],{}," binary from ",[126,1038,1039],{},"PATH"," (or ",[126,1042,1043],{},"$CENTRIFUGO_BIN",") and skips the\nend-to-end tests when it is missing. CI runs everything on Linux, macOS and Windows against\nCentrifugo v5.4.9 and builds for Android.",[1046,1047,1048],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":137,"searchDepth":155,"depth":176,"links":1050},[1051,1052],{"id":918,"depth":155,"text":919},{"id":985,"depth":155,"text":986},"Connect, listen to events, subscribe, publish and clean up.","md",null,{},{"title":19,"description":1053},"6Z3UmjioFw21R79Uj1pQNvbykcCv0k4U9AHvIZ_1ZNI",[1060,1062],{"title":15,"path":16,"stem":17,"description":1061,"children":-1},"Add the Rust crate and the npm package, register the plugin and allow its commands.",{"title":30,"path":31,"stem":32,"description":1063,"children":-1},"Every connect() option, transports, reconnects, connection state and errors.",1794166800621]