[{"data":1,"prerenderedAt":1172},["ShallowReactive",2],{"navigation":3,"-guide-peer":72,"-guide-peer-surround":1168},[4,36],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Getting Started","/guide","1.guide/1.index",[9,11,16,21,26,31],{"title":5,"path":6,"stem":7,"icon":10},"ph:book-open-duotone",{"title":12,"path":13,"stem":14,"icon":15},"Hooks","/guide/hooks","1.guide/2.hooks","material-symbols-light:data-object",{"title":17,"path":18,"stem":19,"icon":20},"Peer","/guide/peer","1.guide/3.peer","mynaui:api",{"title":22,"path":23,"stem":24,"icon":25},"Message","/guide/message","1.guide/4.message","solar:letter-line-duotone",{"title":27,"path":28,"stem":29,"icon":30},"Pub / Sub","/guide/pubsub","1.guide/5.pubsub","simple-icons:googlepubsub",{"title":32,"path":33,"stem":34,"icon":35},"Resolver API","/guide/resolver","1.guide/6.resolver","tabler:route",{"title":37,"path":38,"stem":39,"children":40,"icon":42},"Adapters","/adapters","2.adapters/1.index",[41,43,48,52,57,62,67],{"title":37,"path":38,"stem":39,"icon":42},"emojione-monotone:electric-plug",{"title":44,"path":45,"stem":46,"icon":47},"Bun","/adapters/bun","2.adapters/bun","simple-icons:bun",{"title":49,"path":50,"stem":51},"Bunny","/adapters/bunny","2.adapters/bunny",{"title":53,"path":54,"stem":55,"icon":56},"Cloudflare","/adapters/cloudflare","2.adapters/cloudflare","devicon-plain:cloudflareworkers",{"title":58,"path":59,"stem":60,"icon":61},"Deno","/adapters/deno","2.adapters/deno","teenyicons:deno-solid",{"title":63,"path":64,"stem":65,"icon":66},"Node.js","/adapters/node","2.adapters/node","akar-icons:node-fill",{"title":68,"path":69,"stem":70,"icon":71},"SSE","/adapters/sse","2.adapters/sse","clarity:two-way-arrows-line",{"id":73,"title":17,"body":74,"description":1162,"extension":1163,"meta":1164,"navigation":1165,"path":18,"seo":1166,"stem":19,"__hash__":1167},"content/1.guide/3.peer.md",{"type":75,"value":76,"toc":1141,"icon":20},"minimark",[77,81,86,94,105,111,114,131,137,140,147,153,164,174,180,183,190,260,265,271,274,280,283,287,293,296,302,305,308,314,317,319,325,328,330,336,339,342,386,393,398,401,407,411,877,1137],[78,79,80],"p",{},"When a new client connects to the server, crossws creates a peer instance that allows getting information from clients and sending messages to them.",[82,83,85],"h2",{"id":84},"instance-properties","Instance properties",[87,88,90],"h3",{"id":89},"peerid",[91,92,93],"code",{},"peer.id",[78,95,96,97,104],{},"Unique random identifier (",[98,99,103],"a",{"href":100,"rel":101},"https://developer.mozilla.org/en-US/docs/Glossary/UUID",[102],"nofollow","uuid v4",") for the peer.",[87,106,108],{"id":107},"peerrequest",[91,109,110],{},"peer.request?",[78,112,113],{},"Access to the upgrade request info. You can use it to do authentication and access users headers and cookies.",[115,116,117],"note",{},[78,118,119,120,125,126,130],{},"\nThis property is compatible with web ",[98,121,124],{"href":122,"rel":123},"https://developer.mozilla.org/en-US/docs/Web/API/Request",[102],"Request"," interface, However interface is emulated for Node.js and sometimes unavailable. Refer to the ",[98,127,129],{"href":128},"#compatibility","compatibility table"," for more info.",[87,132,134],{"id":133},"peerremoteaddress",[91,135,136],{},"peer.remoteAddress?",[78,138,139],{},"The IP address of the client.",[115,141,142],{},[78,143,144,145,130],{},"\nNot all adapters provide this. Refer to the ",[98,146,129],{"href":128},[87,148,150],{"id":149},"peerwebsocket",[91,151,152],{},"peer.websocket",[78,154,155,156,163],{},"Direct access to the ",[98,157,160],{"href":158,"rel":159},"https://developer.mozilla.org/en-US/docs/Web/API/WebSocket",[102],[91,161,162],{},"WebSocket"," instance.",[115,165,166],{},[78,167,168,169,171,172,130],{},"\nWebSocket properties vary across runtimes. When accessing ",[91,170,152],{},", a lightweight proxy increases stability. Refer to the ",[98,173,129],{"href":128},[87,175,177],{"id":176},"peercontext",[91,178,179],{},"peer.context",[78,181,182],{},"The context is an object that contains arbitrary information about the request.",[78,184,185,186,189],{},"You can augment the ",[91,187,188],{},"PeerContext"," interface types to add your properties.",[191,192,197],"pre",{"className":193,"code":194,"language":195,"meta":196,"style":196},"language-ts shiki shiki-themes github-light github-dark github-dark","declare module \"crossws\" {\n  interface PeerContext {\n    customData?: string[];\n  }\n}\n","ts","",[91,198,199,219,231,248,254],{"__ignoreMap":196},[200,201,204,208,211,215],"span",{"class":202,"line":203},"line",1,[200,205,207],{"class":206},"so5gQ","declare",[200,209,210],{"class":206}," module",[200,212,214],{"class":213},"sfrk1"," \"crossws\"",[200,216,218],{"class":217},"slsVL"," {\n",[200,220,222,225,229],{"class":202,"line":221},2,[200,223,224],{"class":206},"  interface",[200,226,228],{"class":227},"shcOC"," PeerContext",[200,230,218],{"class":217},[200,232,234,238,241,245],{"class":202,"line":233},3,[200,235,237],{"class":236},"sQHwn","    customData",[200,239,240],{"class":206},"?:",[200,242,244],{"class":243},"suiK_"," string",[200,246,247],{"class":217},"[];\n",[200,249,251],{"class":202,"line":250},4,[200,252,253],{"class":217},"  }\n",[200,255,257],{"class":202,"line":256},5,[200,258,259],{"class":217},"}\n",[115,261,262],{},[78,263,264],{},"\ncontext data can be volatile in some runtimes.",[87,266,268],{"id":267},"peertopics",[91,269,270],{},"peer.topics",[78,272,273],{},"All topics, this peer has been subscribed to.",[87,275,277],{"id":276},"peernamespace",[91,278,279],{},"peer.namespace",[78,281,282],{},"Peer's pubsub namespace.",[82,284,286],{"id":285},"instance-methods","Instance methods",[87,288,290],{"id":289},"peersendmessage-compress",[91,291,292],{},"peer.send(message, { compress? })",[78,294,295],{},"Send a message to the connected client.",[87,297,299],{"id":298},"peersubscribechannel",[91,300,301],{},"peer.subscribe(channel)",[78,303,304],{},"Join a broadcast channel.",[306,307],"read-more",{"to":28},[87,309,311],{"id":310},"peerunsubscribechannel",[91,312,313],{},"peer.unsubscribe(channel)",[78,315,316],{},"Leave a broadcast channel.",[306,318],{"to":28},[87,320,322],{"id":321},"peerpublishchannel-message",[91,323,324],{},"peer.publish(channel, message)",[78,326,327],{},"Broadcast a message to the channel. The peer that the publish is called on itself is excluded from the broadcast.",[306,329],{"to":28},[87,331,333],{"id":332},"peerclosecode-number",[91,334,335],{},"peer.close(code?, number?)",[78,337,338],{},"Gracefully closes the connection.",[78,340,341],{},"Here is a list of close codes:",[343,344,345,352,358,364,370,376],"ul",{},[346,347,348,351],"li",{},[91,349,350],{},"1000"," means \"normal closure\" (default)",[346,353,354,357],{},[91,355,356],{},"1009"," means a message was too big and was rejected",[346,359,360,363],{},[91,361,362],{},"1011"," means the server encountered an error",[346,365,366,369],{},[91,367,368],{},"1012"," means the server is restarting",[346,371,372,375],{},[91,373,374],{},"1013"," means the server is too busy or the client is rate-limited",[346,377,378,381,382,385],{},[91,379,380],{},"4000"," through ",[91,383,384],{},"4999"," are reserved for applications (you can use it!)",[78,387,388,389,392],{},"To close the connection abruptly, use ",[91,390,391],{},"peer.terminate()",".",[87,394,396],{"id":395},"peerterminate",[91,397,391],{},[78,399,400],{},"Abruptly close the connection.",[78,402,403,404,392],{},"To gracefully close the connection, use ",[91,405,406],{},"peer.close()",[82,408,410],{"id":409},"compatibility","Compatibility",[412,413,414,457],"table",{},[415,416,417],"thead",{},[418,419,420,423,427,431,437,441,446,452],"tr",{},[421,422],"th",{},[421,424,425],{},[98,426,44],{"href":45},[421,428,429],{},[98,430,53],{"href":54},[421,432,433],{},[98,434,436],{"href":435},"/adapters/cloudflare#durable-objects","Cloudflare (durable)",[421,438,439],{},[98,440,58],{"href":59},[421,442,443],{},[98,444,445],{"href":64},"Node (ws)",[421,447,448],{},[98,449,451],{"href":450},"/adapters/node#uwebsockets","Node (μWebSockets)",[421,453,454],{},[98,455,68],{"href":456},"adapters/sse",[458,459,460,483,538,559,594,637,658,679,726,786,821,856],"tbody",{},[418,461,462,468,471,473,475,477,479,481],{},[463,464,465],"td",{},[91,466,467],{},"send()",[463,469,470],{},"✓",[463,472,470],{},[463,474,470],{},[463,476,470],{},[463,478,470],{},[463,480,470],{},[463,482,470],{},[418,484,485,494,496,499,512,520,528,530],{},[463,486,487,490,491],{},[91,488,489],{},"publish()"," / ",[91,492,493],{},"subscribe()",[463,495,470],{},[463,497,498],{},"⨉",[463,500,501,502],{},"✓ ",[503,504,505],"sup",{},[98,506,511],{"href":507,"ariaDescribedBy":508,"dataFootnoteRef":196,"id":510},"#user-content-fn-1",[509],"footnote-label","user-content-fnref-1","1",[463,513,501,514],{},[503,515,516],{},[98,517,511],{"href":507,"ariaDescribedBy":518,"dataFootnoteRef":196,"id":519},[509],"user-content-fnref-1-2",[463,521,501,522],{},[503,523,524],{},[98,525,511],{"href":507,"ariaDescribedBy":526,"dataFootnoteRef":196,"id":527},[509],"user-content-fnref-1-3",[463,529,470],{},[463,531,501,532],{},[503,533,534],{},[98,535,511],{"href":507,"ariaDescribedBy":536,"dataFootnoteRef":196,"id":537},[509],"user-content-fnref-1-4",[418,539,540,545,547,549,551,553,555,557],{},[463,541,542],{},[91,543,544],{},"close()",[463,546,470],{},[463,548,470],{},[463,550,470],{},[463,552,470],{},[463,554,470],{},[463,556,470],{},[463,558,470],{},[418,560,561,566,568,578,580,582,584,586],{},[463,562,563],{},[91,564,565],{},"terminate()",[463,567,470],{},[463,569,501,570],{},[503,571,572],{},[98,573,577],{"href":574,"ariaDescribedBy":575,"dataFootnoteRef":196,"id":576},"#user-content-fn-2",[509],"user-content-fnref-2","2",[463,579,470],{},[463,581,470],{},[463,583,470],{},[463,585,470],{},[463,587,501,588],{},[503,589,590],{},[98,591,577],{"href":574,"ariaDescribedBy":592,"dataFootnoteRef":196,"id":593},[509],"user-content-fnref-2-2",[418,595,596,601,603,605,615,617,627,635],{},[463,597,598],{},[91,599,600],{},"request",[463,602,470],{},[463,604,470],{},[463,606,501,607],{},[503,608,609],{},[98,610,614],{"href":611,"ariaDescribedBy":612,"dataFootnoteRef":196,"id":613},"#user-content-fn-30",[509],"user-content-fnref-30","3",[463,616,470],{},[463,618,501,619],{},[503,620,621],{},[98,622,626],{"href":623,"ariaDescribedBy":624,"dataFootnoteRef":196,"id":625},"#user-content-fn-31",[509],"user-content-fnref-31","4",[463,628,501,629],{},[503,630,631],{},[98,632,626],{"href":623,"ariaDescribedBy":633,"dataFootnoteRef":196,"id":634},[509],"user-content-fnref-31-2",[463,636,470],{},[418,638,639,644,646,648,650,652,654,656],{},[463,640,641],{},[91,642,643],{},"remoteAddress",[463,645,470],{},[463,647,498],{},[463,649,498],{},[463,651,470],{},[463,653,470],{},[463,655,470],{},[463,657,498],{},[418,659,660,665,667,669,671,673,675,677],{},[463,661,662],{},[91,663,664],{},"websocket.url",[463,666,470],{},[463,668,470],{},[463,670,470],{},[463,672,470],{},[463,674,470],{},[463,676,470],{},[463,678,470],{},[418,680,681,686,696,698,700,708,716,724],{},[463,682,683],{},[91,684,685],{},"websocket.extensions",[463,687,501,688],{},[503,689,690],{},[98,691,695],{"href":692,"ariaDescribedBy":693,"dataFootnoteRef":196,"id":694},"#user-content-fn-4",[509],"user-content-fnref-4","5",[463,697,498],{},[463,699,498],{},[463,701,501,702],{},[503,703,704],{},[98,705,695],{"href":692,"ariaDescribedBy":706,"dataFootnoteRef":196,"id":707},[509],"user-content-fnref-4-2",[463,709,501,710],{},[503,711,712],{},[98,713,695],{"href":692,"ariaDescribedBy":714,"dataFootnoteRef":196,"id":715},[509],"user-content-fnref-4-3",[463,717,501,718],{},[503,719,720],{},[98,721,695],{"href":692,"ariaDescribedBy":722,"dataFootnoteRef":196,"id":723},[509],"user-content-fnref-4-4",[463,725,498],{},[418,727,728,733,743,751,759,768,776,784],{},[463,729,730],{},[91,731,732],{},"websocket.protocol",[463,734,501,735],{},[503,736,737],{},[98,738,742],{"href":739,"ariaDescribedBy":740,"dataFootnoteRef":196,"id":741},"#user-content-fn-5",[509],"user-content-fnref-5","6",[463,744,501,745],{},[503,746,747],{},[98,748,742],{"href":739,"ariaDescribedBy":749,"dataFootnoteRef":196,"id":750},[509],"user-content-fnref-5-2",[463,752,501,753],{},[503,754,755],{},[98,756,742],{"href":739,"ariaDescribedBy":757,"dataFootnoteRef":196,"id":758},[509],"user-content-fnref-5-3",[463,760,761,767],{},[503,762,763],{},[98,764,742],{"href":739,"ariaDescribedBy":765,"dataFootnoteRef":196,"id":766},[509],"user-content-fnref-5-4"," ✓",[463,769,501,770],{},[503,771,772],{},[98,773,742],{"href":739,"ariaDescribedBy":774,"dataFootnoteRef":196,"id":775},[509],"user-content-fnref-5-5",[463,777,501,778],{},[503,779,780],{},[98,781,742],{"href":739,"ariaDescribedBy":782,"dataFootnoteRef":196,"id":783},[509],"user-content-fnref-5-6",[463,785,498],{},[418,787,788,793,795,797,799,801,803,813],{},[463,789,790],{},[91,791,792],{},"websocket.readyState",[463,794,470],{},[463,796,470],{},[463,798,470],{},[463,800,470],{},[463,802,470],{},[463,804,501,805],{},[503,806,807],{},[98,808,812],{"href":809,"ariaDescribedBy":810,"dataFootnoteRef":196,"id":811},"#user-content-fn-6",[509],"user-content-fnref-6","7",[463,814,501,815],{},[503,816,817],{},[98,818,812],{"href":809,"ariaDescribedBy":819,"dataFootnoteRef":196,"id":820},[509],"user-content-fnref-6-2",[418,822,823,828,838,840,842,844,852,854],{},[463,824,825],{},[91,826,827],{},"websocket.binaryType",[463,829,501,830],{},[503,831,832],{},[98,833,837],{"href":834,"ariaDescribedBy":835,"dataFootnoteRef":196,"id":836},"#user-content-fn-7",[509],"user-content-fnref-7","8",[463,839,498],{},[463,841,498],{},[463,843,470],{},[463,845,501,846],{},[503,847,848],{},[98,849,837],{"href":834,"ariaDescribedBy":850,"dataFootnoteRef":196,"id":851},[509],"user-content-fnref-7-2",[463,853,470],{},[463,855,498],{},[418,857,858,863,865,867,869,871,873,875],{},[463,859,860],{},[91,861,862],{},"websocket.bufferedAmount",[463,864,498],{},[463,866,498],{},[463,868,498],{},[463,870,470],{},[463,872,470],{},[463,874,470],{},[463,876,498],{},[878,879,882,887],"section",{"className":880,"dataFootnotes":196},[881],"footnotes",[82,883,886],{"className":884,"id":509},[885],"sr-only","Footnotes",[888,889,890,923,941,957,985,1029,1084,1106],"ol",{},[346,891,893,894,901,902,901,909,901,916],{"id":892},"user-content-fn-1","pubsub is not natively handled by runtime. peers are internally tracked. ",[98,895,900],{"href":896,"ariaLabel":897,"className":898,"dataFootnoteBackref":196},"#user-content-fnref-1","Back to reference 1",[899],"data-footnote-backref","↩"," ",[98,903,900,907],{"href":904,"ariaLabel":905,"className":906,"dataFootnoteBackref":196},"#user-content-fnref-1-2","Back to reference 1-2",[899],[503,908,577],{},[98,910,900,914],{"href":911,"ariaLabel":912,"className":913,"dataFootnoteBackref":196},"#user-content-fnref-1-3","Back to reference 1-3",[899],[503,915,614],{},[98,917,900,921],{"href":918,"ariaLabel":919,"className":920,"dataFootnoteBackref":196},"#user-content-fnref-1-4","Back to reference 1-4",[899],[503,922,626],{},[346,924,926,928,929,901,934],{"id":925},"user-content-fn-2",[91,927,544],{}," will be used for compatibility. ",[98,930,900],{"href":931,"ariaLabel":932,"className":933,"dataFootnoteBackref":196},"#user-content-fnref-2","Back to reference 2",[899],[98,935,900,939],{"href":936,"ariaLabel":937,"className":938,"dataFootnoteBackref":196},"#user-content-fnref-2-2","Back to reference 2-2",[899],[503,940,577],{},[346,942,944,945,948,949,951,952],{"id":943},"user-content-fn-30","After durable object's hibernation, only ",[91,946,947],{},"request.url"," (and ",[91,950,93],{},") remain available due to 2048 byte in-memory state limit. ",[98,953,900],{"href":954,"ariaLabel":955,"className":956,"dataFootnoteBackref":196},"#user-content-fnref-30","Back to reference 3",[899],[346,958,960,961,964,965,968,969,972,973,901,978],{"id":959},"user-content-fn-31","using a proxy for ",[98,962,124],{"href":122,"rel":963},[102]," compatible interface (",[91,966,967],{},"url",", ",[91,970,971],{},"headers"," only) wrapping Node.js requests. ",[98,974,900],{"href":975,"ariaLabel":976,"className":977,"dataFootnoteBackref":196},"#user-content-fnref-31","Back to reference 4",[899],[98,979,900,983],{"href":980,"ariaLabel":981,"className":982,"dataFootnoteBackref":196},"#user-content-fnref-31-2","Back to reference 4-2",[899],[503,984,577],{},[346,986,988,994,995,1002,1003,901,1008,901,1015,901,1022],{"id":987},"user-content-fn-4",[98,989,992],{"href":990,"rel":991},"https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/extensions",[102],[91,993,685],{}," is polyfilled using ",[98,996,999],{"href":997,"rel":998},"https://developer.mozilla.org/en-US/docs/Web/HTTP/Protocol_upgrade_mechanism#websocket-specific_headers",[102],[91,1000,1001],{},"sec-websocket-extensions"," request header. ",[98,1004,900],{"href":1005,"ariaLabel":1006,"className":1007,"dataFootnoteBackref":196},"#user-content-fnref-4","Back to reference 5",[899],[98,1009,900,1013],{"href":1010,"ariaLabel":1011,"className":1012,"dataFootnoteBackref":196},"#user-content-fnref-4-2","Back to reference 5-2",[899],[503,1014,577],{},[98,1016,900,1020],{"href":1017,"ariaLabel":1018,"className":1019,"dataFootnoteBackref":196},"#user-content-fnref-4-3","Back to reference 5-3",[899],[503,1021,614],{},[98,1023,900,1027],{"href":1024,"ariaLabel":1025,"className":1026,"dataFootnoteBackref":196},"#user-content-fnref-4-4","Back to reference 5-4",[899],[503,1028,626],{},[346,1030,1032,994,1038,1002,1044,901,1049,901,1056,901,1063,901,1070,901,1077],{"id":1031},"user-content-fn-5",[98,1033,1036],{"href":1034,"rel":1035},"https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/protocol",[102],[91,1037,732],{},[98,1039,1041],{"href":997,"rel":1040},[102],[91,1042,1043],{},"sec-websocket-protocol",[98,1045,900],{"href":1046,"ariaLabel":1047,"className":1048,"dataFootnoteBackref":196},"#user-content-fnref-5","Back to reference 6",[899],[98,1050,900,1054],{"href":1051,"ariaLabel":1052,"className":1053,"dataFootnoteBackref":196},"#user-content-fnref-5-2","Back to reference 6-2",[899],[503,1055,577],{},[98,1057,900,1061],{"href":1058,"ariaLabel":1059,"className":1060,"dataFootnoteBackref":196},"#user-content-fnref-5-3","Back to reference 6-3",[899],[503,1062,614],{},[98,1064,900,1068],{"href":1065,"ariaLabel":1066,"className":1067,"dataFootnoteBackref":196},"#user-content-fnref-5-4","Back to reference 6-4",[899],[503,1069,626],{},[98,1071,900,1075],{"href":1072,"ariaLabel":1073,"className":1074,"dataFootnoteBackref":196},"#user-content-fnref-5-5","Back to reference 6-5",[899],[503,1076,695],{},[98,1078,900,1082],{"href":1079,"ariaLabel":1080,"className":1081,"dataFootnoteBackref":196},"#user-content-fnref-5-6","Back to reference 6-6",[899],[503,1083,742],{},[346,1085,1087,1093,1094,901,1099],{"id":1086},"user-content-fn-6",[98,1088,1091],{"href":1089,"rel":1090},"https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/readyState",[102],[91,1092,792],{}," is polyfilled by tracking open/close events. ",[98,1095,900],{"href":1096,"ariaLabel":1097,"className":1098,"dataFootnoteBackref":196},"#user-content-fnref-6","Back to reference 7",[899],[98,1100,900,1104],{"href":1101,"ariaLabel":1102,"className":1103,"dataFootnoteBackref":196},"#user-content-fnref-6-2","Back to reference 7-2",[899],[503,1105,577],{},[346,1107,1109,1110,1113,1114,1117,1118,1124,1125,901,1130],{"id":1108},"user-content-fn-7","Some runtimes have non standard values including ",[91,1111,1112],{},"\"nodebuffer\""," and ",[91,1115,1116],{},"\"uint8array\"",". crossws auto converts them for ",[98,1119,1121],{"href":1120},"/guide/message#messagedata",[91,1122,1123],{},"message.data",". ",[98,1126,900],{"href":1127,"ariaLabel":1128,"className":1129,"dataFootnoteBackref":196},"#user-content-fnref-7","Back to reference 8",[899],[98,1131,900,1135],{"href":1132,"ariaLabel":1133,"className":1134,"dataFootnoteBackref":196},"#user-content-fnref-7-2","Back to reference 8-2",[899],[503,1136,577],{},[1138,1139,1140],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}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);}",{"title":196,"searchDepth":221,"depth":221,"links":1142},[1143,1152,1160,1161],{"id":84,"depth":221,"text":85,"children":1144},[1145,1146,1147,1148,1149,1150,1151],{"id":89,"depth":233,"text":93},{"id":107,"depth":233,"text":110},{"id":133,"depth":233,"text":136},{"id":149,"depth":233,"text":152},{"id":176,"depth":233,"text":179},{"id":267,"depth":233,"text":270},{"id":276,"depth":233,"text":279},{"id":285,"depth":221,"text":286,"children":1153},[1154,1155,1156,1157,1158,1159],{"id":289,"depth":233,"text":292},{"id":298,"depth":233,"text":301},{"id":310,"depth":233,"text":313},{"id":321,"depth":233,"text":324},{"id":332,"depth":233,"text":335},{"id":395,"depth":233,"text":391},{"id":409,"depth":221,"text":410},{"id":509,"depth":221,"text":886},"Peer object allows easily interacting with connected clients.","md",{"icon":20},{"icon":20},{"title":17,"description":1162},"0oJn0TkeiXCtKjYNRsEyqXtKKTZBzXocFCGIaO1hAK8",[1169,1171],{"title":12,"path":13,"stem":14,"description":1170,"icon":15,"children":-1},"Using hooks, you can define a WebSocket server that works across runtimes with the same syntax.",{"title":22,"path":23,"stem":24,"description":196,"icon":25,"children":-1},1771506027684]