[{"data":1,"prerenderedAt":1365},["ShallowReactive",2],{"navigation":3,"\u002Fguides\u002Frust":116,"\u002Fguides\u002Frust-surround":1360},[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":54,"body":118,"description":1354,"extension":1355,"generated":22,"links":1356,"meta":1357,"navigation":234,"path":55,"seo":1358,"stem":56,"__hash__":1359},"docs\u002F2.guides\u002F7.rust.md",{"type":119,"value":120,"toc":1350},"minimark",[121,126,144,713,752,916,933,958,962,976,1332,1346],[122,123,125],"h2",{"id":124},"the-plugins-client","The plugin's client",[127,128,129,133,134,143],"p",{},[130,131,132],"code",{},"init()"," puts a ",[135,136,140],"a",{"href":137,"rel":138},"https:\u002F\u002Fdocs.rs\u002Ftauri-plugin-centrifugo\u002Flatest\u002Ftauri_plugin_centrifugo\u002Fcore\u002Fstruct.Centrifugo.html",[139],"nofollow",[130,141,142],{},"tauri_plugin_centrifugo::core::Centrifugo","\ninto the managed state. The Tauri commands call it; your backend can too, and the frontend sees\nthe same client and the same events.",[145,146,152],"pre",{"className":147,"code":148,"filename":149,"language":150,"meta":151,"style":151},"language-rust shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","use tauri::Manager;\nuse tauri_plugin_centrifugo::core::Centrifugo;\nuse tauri_plugin_centrifugo::models::{PublishRequest, StartConfig, SubscribeOptions};\n\n#[tauri::command]\nasync fn start_realtime(app: tauri::AppHandle, token: String) -> Result\u003C(), String> {\n    let centrifugo = app.state::\u003CCentrifugo>();\n    centrifugo\n        .connect(app.clone(), StartConfig {\n            url: \"wss:\u002F\u002Fexample.com\u002Fconnection\u002Fwebsocket\".into(),\n            token: Some(token),\n            name: Some(\"my-app\".into()),\n            version: None,\n            channels: vec![\"news\".into()],\n            use_protobuf: false,\n            read_timeout: Some(5000),\n            http_stream_url: None,\n            headers: None,\n            request_token: None,\n        })\n        .await\n        .map_err(|e| e.to_string())?;\n\n    let mut opts = SubscribeOptions::channel(\"chat:42\");\n    opts.recoverable = Some(true);\n    centrifugo\n        .add_subscription_with_options(app.clone(), opts)\n        .await\n        .map_err(|e| e.to_string())\n}\n","src-tauri\u002Fsrc\u002Flib.rs","rust","",[130,153,154,177,197,229,236,254,313,343,349,374,400,419,445,459,487,498,515,527,539,551,557,566,594,599,631,649,654,678,685,707],{"__ignoreMap":151},[155,156,159,163,167,171,174],"span",{"class":157,"line":158},"line",1,[155,160,162],{"class":161},"sbssI","use",[155,164,166],{"class":165},"sBMFI"," tauri",[155,168,170],{"class":169},"sMK4o","::",[155,172,173],{"class":165},"Manager",[155,175,176],{"class":169},";\n",[155,178,180,182,185,187,190,192,195],{"class":157,"line":179},2,[155,181,162],{"class":161},[155,183,184],{"class":165}," tauri_plugin_centrifugo",[155,186,170],{"class":169},[155,188,189],{"class":165},"core",[155,191,170],{"class":169},[155,193,194],{"class":165},"Centrifugo",[155,196,176],{"class":169},[155,198,200,202,204,206,209,212,215,218,221,223,226],{"class":157,"line":199},3,[155,201,162],{"class":161},[155,203,184],{"class":165},[155,205,170],{"class":169},[155,207,208],{"class":165},"models",[155,210,211],{"class":169},"::{",[155,213,214],{"class":165},"PublishRequest",[155,216,217],{"class":169},",",[155,219,220],{"class":165}," StartConfig",[155,222,217],{"class":169},[155,224,225],{"class":165}," SubscribeOptions",[155,227,228],{"class":169},"};\n",[155,230,232],{"class":157,"line":231},4,[155,233,235],{"emptyLinePlaceholder":234},true,"\n",[155,237,239,242,246,248,251],{"class":157,"line":238},5,[155,240,241],{"class":169},"#[",[155,243,245],{"class":244},"sTEyZ","tauri",[155,247,170],{"class":169},[155,249,250],{"class":244},"command",[155,252,253],{"class":169},"]\n",[155,255,257,260,263,267,270,273,276,278,280,283,285,288,290,293,296,299,302,305,307,310],{"class":157,"line":256},6,[155,258,259],{"class":161},"async",[155,261,262],{"class":161}," fn",[155,264,266],{"class":265},"s2Zo4"," start_realtime",[155,268,269],{"class":169},"(",[155,271,272],{"class":244},"app",[155,274,275],{"class":169},":",[155,277,166],{"class":165},[155,279,170],{"class":169},[155,281,282],{"class":165},"AppHandle",[155,284,217],{"class":169},[155,286,287],{"class":244}," token",[155,289,275],{"class":169},[155,291,292],{"class":165}," String",[155,294,295],{"class":169},")",[155,297,298],{"class":169}," ->",[155,300,301],{"class":165}," Result",[155,303,304],{"class":169},"\u003C(),",[155,306,292],{"class":165},[155,308,309],{"class":169},">",[155,311,312],{"class":169}," {\n",[155,314,316,320,323,326,329,332,335,338,340],{"class":157,"line":315},7,[155,317,319],{"class":318},"spNyl","    let",[155,321,322],{"class":244}," centrifugo ",[155,324,325],{"class":169},"=",[155,327,328],{"class":244}," app",[155,330,331],{"class":169},".",[155,333,334],{"class":265},"state",[155,336,337],{"class":169},"::\u003C",[155,339,194],{"class":165},[155,341,342],{"class":169},">();\n",[155,344,346],{"class":157,"line":345},8,[155,347,348],{"class":244},"    centrifugo\n",[155,350,352,355,358,360,362,364,367,370,372],{"class":157,"line":351},9,[155,353,354],{"class":169},"        .",[155,356,357],{"class":265},"connect",[155,359,269],{"class":169},[155,361,272],{"class":244},[155,363,331],{"class":169},[155,365,366],{"class":265},"clone",[155,368,369],{"class":169},"(),",[155,371,220],{"class":165},[155,373,312],{"class":169},[155,375,377,380,382,385,389,392,394,397],{"class":157,"line":376},10,[155,378,379],{"class":244},"            url",[155,381,275],{"class":169},[155,383,384],{"class":169}," \"",[155,386,388],{"class":387},"sfazB","wss:\u002F\u002Fexample.com\u002Fconnection\u002Fwebsocket",[155,390,391],{"class":169},"\"",[155,393,331],{"class":169},[155,395,396],{"class":265},"into",[155,398,399],{"class":169},"(),\n",[155,401,403,406,408,411,413,416],{"class":157,"line":402},11,[155,404,405],{"class":244},"            token",[155,407,275],{"class":169},[155,409,410],{"class":165}," Some",[155,412,269],{"class":169},[155,414,415],{"class":244},"token",[155,417,418],{"class":169},"),\n",[155,420,422,425,427,429,431,433,436,438,440,442],{"class":157,"line":421},12,[155,423,424],{"class":244},"            name",[155,426,275],{"class":169},[155,428,410],{"class":165},[155,430,269],{"class":169},[155,432,391],{"class":169},[155,434,435],{"class":387},"my-app",[155,437,391],{"class":169},[155,439,331],{"class":169},[155,441,396],{"class":265},[155,443,444],{"class":169},"()),\n",[155,446,448,451,453,456],{"class":157,"line":447},13,[155,449,450],{"class":244},"            version",[155,452,275],{"class":169},[155,454,455],{"class":165}," None",[155,457,458],{"class":169},",\n",[155,460,462,465,467,470,473,475,478,480,482,484],{"class":157,"line":461},14,[155,463,464],{"class":244},"            channels",[155,466,275],{"class":169},[155,468,469],{"class":265}," vec!",[155,471,472],{"class":169},"[",[155,474,391],{"class":169},[155,476,477],{"class":387},"news",[155,479,391],{"class":169},[155,481,331],{"class":169},[155,483,396],{"class":265},[155,485,486],{"class":169},"()],\n",[155,488,490,493,495],{"class":157,"line":489},15,[155,491,492],{"class":244},"            use_protobuf",[155,494,275],{"class":169},[155,496,497],{"class":169}," false,\n",[155,499,501,504,506,508,510,513],{"class":157,"line":500},16,[155,502,503],{"class":244},"            read_timeout",[155,505,275],{"class":169},[155,507,410],{"class":165},[155,509,269],{"class":169},[155,511,512],{"class":161},"5000",[155,514,418],{"class":169},[155,516,518,521,523,525],{"class":157,"line":517},17,[155,519,520],{"class":244},"            http_stream_url",[155,522,275],{"class":169},[155,524,455],{"class":165},[155,526,458],{"class":169},[155,528,530,533,535,537],{"class":157,"line":529},18,[155,531,532],{"class":244},"            headers",[155,534,275],{"class":169},[155,536,455],{"class":165},[155,538,458],{"class":169},[155,540,542,545,547,549],{"class":157,"line":541},19,[155,543,544],{"class":244},"            request_token",[155,546,275],{"class":169},[155,548,455],{"class":165},[155,550,458],{"class":169},[155,552,554],{"class":157,"line":553},20,[155,555,556],{"class":169},"        })\n",[155,558,560,562],{"class":157,"line":559},21,[155,561,354],{"class":169},[155,563,565],{"class":564},"s7zQu","await\n",[155,567,569,571,574,577,580,583,586,588,591],{"class":157,"line":568},22,[155,570,354],{"class":169},[155,572,573],{"class":265},"map_err",[155,575,576],{"class":169},"(|",[155,578,579],{"class":244},"e",[155,581,582],{"class":169},"|",[155,584,585],{"class":244}," e",[155,587,331],{"class":169},[155,589,590],{"class":265},"to_string",[155,592,593],{"class":169},"())?;\n",[155,595,597],{"class":157,"line":596},23,[155,598,235],{"emptyLinePlaceholder":234},[155,600,602,604,607,610,612,614,616,619,621,623,626,628],{"class":157,"line":601},24,[155,603,319],{"class":318},[155,605,606],{"class":318}," mut",[155,608,609],{"class":244}," opts ",[155,611,325],{"class":169},[155,613,225],{"class":165},[155,615,170],{"class":169},[155,617,618],{"class":265},"channel",[155,620,269],{"class":169},[155,622,391],{"class":169},[155,624,625],{"class":387},"chat:42",[155,627,391],{"class":169},[155,629,630],{"class":169},");\n",[155,632,634,637,639,642,644,646],{"class":157,"line":633},25,[155,635,636],{"class":244},"    opts",[155,638,331],{"class":169},[155,640,641],{"class":244},"recoverable ",[155,643,325],{"class":169},[155,645,410],{"class":165},[155,647,648],{"class":169},"(true);\n",[155,650,652],{"class":157,"line":651},26,[155,653,348],{"class":244},[155,655,657,659,662,664,666,668,670,672,675],{"class":157,"line":656},27,[155,658,354],{"class":169},[155,660,661],{"class":265},"add_subscription_with_options",[155,663,269],{"class":169},[155,665,272],{"class":244},[155,667,331],{"class":169},[155,669,366],{"class":265},[155,671,369],{"class":169},[155,673,674],{"class":244}," opts",[155,676,677],{"class":169},")\n",[155,679,681,683],{"class":157,"line":680},28,[155,682,354],{"class":169},[155,684,565],{"class":564},[155,686,688,690,692,694,696,698,700,702,704],{"class":157,"line":687},29,[155,689,354],{"class":169},[155,691,573],{"class":265},[155,693,576],{"class":169},[155,695,579],{"class":244},[155,697,582],{"class":169},[155,699,585],{"class":244},[155,701,331],{"class":169},[155,703,590],{"class":265},[155,705,706],{"class":169},"())\n",[155,708,710],{"class":157,"line":709},30,[155,711,712],{"class":169},"}\n",[127,714,715,716,719,720,719,723,719,726,458,729,732,733,739,740,743,744,747,748,751],{},"Every command has a method of the same name (",[130,717,718],{},"publish",", ",[130,721,722],{},"rpc",[130,724,725],{},"history",[130,727,728],{},"presence",[130,730,731],{},"provide_token",", …) taking the same request types from\n",[135,734,737],{"href":735,"rel":736},"https:\u002F\u002Fdocs.rs\u002Ftauri-plugin-centrifugo\u002Flatest\u002Ftauri_plugin_centrifugo\u002Fmodels\u002F",[139],[130,738,208],{},";\nthe request ",[130,741,742],{},"data"," is base64 or raw JSON as from JS (see ",[135,745,746],{"href":51},"Payloads","). With\nthe ",[130,749,750],{},"base64"," crate:",[145,753,755],{"className":147,"code":754,"language":150,"meta":151,"style":151},"use base64::Engine;\n\ncentrifugo\n    .publish(PublishRequest {\n        channel: \"news\".into(),\n        data: base64::engine::general_purpose::STANDARD.encode(br#\"{\"text\":\"hi\"}\"#),\n        data_encoding: None,\n        r#type: None,\n        key: None,\n        removed: None,\n    })\n    .await?;\n",[130,756,757,771,775,780,793,812,857,868,879,890,901,906],{"__ignoreMap":151},[155,758,759,761,764,766,769],{"class":157,"line":158},[155,760,162],{"class":161},[155,762,763],{"class":165}," base64",[155,765,170],{"class":169},[155,767,768],{"class":165},"Engine",[155,770,176],{"class":169},[155,772,773],{"class":157,"line":179},[155,774,235],{"emptyLinePlaceholder":234},[155,776,777],{"class":157,"line":199},[155,778,779],{"class":244},"centrifugo\n",[155,781,782,785,787,789,791],{"class":157,"line":231},[155,783,784],{"class":169},"    .",[155,786,718],{"class":265},[155,788,269],{"class":169},[155,790,214],{"class":165},[155,792,312],{"class":169},[155,794,795,798,800,802,804,806,808,810],{"class":157,"line":238},[155,796,797],{"class":244},"        channel",[155,799,275],{"class":169},[155,801,384],{"class":169},[155,803,477],{"class":387},[155,805,391],{"class":169},[155,807,331],{"class":169},[155,809,396],{"class":265},[155,811,399],{"class":169},[155,813,814,817,819,821,823,826,828,831,833,836,838,841,843,846,849,852,855],{"class":157,"line":256},[155,815,816],{"class":244},"        data",[155,818,275],{"class":169},[155,820,763],{"class":165},[155,822,170],{"class":169},[155,824,825],{"class":165},"engine",[155,827,170],{"class":169},[155,829,830],{"class":165},"general_purpose",[155,832,170],{"class":169},[155,834,835],{"class":244},"STANDARD",[155,837,331],{"class":169},[155,839,840],{"class":265},"encode",[155,842,269],{"class":169},[155,844,845],{"class":387},"br",[155,847,848],{"class":169},"#\"",[155,850,851],{"class":387},"{\"text\":\"hi\"}",[155,853,854],{"class":169},"\"#",[155,856,418],{"class":169},[155,858,859,862,864,866],{"class":157,"line":315},[155,860,861],{"class":244},"        data_encoding",[155,863,275],{"class":169},[155,865,455],{"class":165},[155,867,458],{"class":169},[155,869,870,873,875,877],{"class":157,"line":345},[155,871,872],{"class":244},"        r#type",[155,874,275],{"class":169},[155,876,455],{"class":165},[155,878,458],{"class":169},[155,880,881,884,886,888],{"class":157,"line":351},[155,882,883],{"class":244},"        key",[155,885,275],{"class":169},[155,887,455],{"class":165},[155,889,458],{"class":169},[155,891,892,895,897,899],{"class":157,"line":376},[155,893,894],{"class":244},"        removed",[155,896,275],{"class":169},[155,898,455],{"class":165},[155,900,458],{"class":169},[155,902,903],{"class":157,"line":402},[155,904,905],{"class":169},"    })\n",[155,907,908,910,913],{"class":157,"line":421},[155,909,784],{"class":169},[155,911,912],{"class":564},"await",[155,914,915],{"class":169},"?;\n",[127,917,918,919,924,925,928,929,932],{},"The functions in ",[135,920,921],{"href":77},[130,922,923],{},"commands"," are public too\n(",[130,926,927],{},"tauri_plugin_centrifugo::commands::connect(window, config)","); they take the ",[130,930,931],{},"Window"," and only\nlook up the state, so the managed state above is the shorter way.",[127,934,935,936,939,940,943,944,947,948,950,951,953,954,957],{},"Events reach Rust as well: listen to ",[130,937,938],{},"centrifugo:\u003Cevent>"," with ",[130,941,942],{},"app.listen(...)"," (trait\n",[130,945,946],{},"tauri::Listener","; the payload is the JSON described in ",[135,949,38],{"href":39},"). Token requests are answered with\n",[130,952,731],{}," \u002F ",[130,955,956],{},"sub_refresh",", from Rust or JS.",[122,959,961],{"id":960},"the-sdk-directly","The SDK directly",[127,963,964,965,968,969,972,973,275],{},"The SDK the plugin is built on is re-exported as ",[130,966,967],{},"tauri_plugin_centrifugo::centrifuge",", so a\nbackend can run its own client without adding it (for example a connection the webview should\nnot see). ",[130,970,971],{},"fetch_token"," stands for your own code; the stream needs ",[130,974,975],{},"futures-util",[145,977,979],{"className":147,"code":978,"language":150,"meta":151,"style":151},"use tauri_plugin_centrifugo::centrifuge::Client;\n\n\u002F\u002F build() takes the current Tokio runtime: run it inside Tauri's.\ntauri::async_runtime::spawn(async move {\n    let client = Client::builder(\"wss:\u002F\u002Fexample.com\u002Fconnection\u002Fwebsocket\")\n        .get_token(|_ctx| async move { Ok(Some(fetch_token().await?)) })\n        .build()?;\n    let sub = client.new_subscription(\"news\").recoverable(true).build()?;\n    let mut pubs = sub.publications();\n    sub.subscribe();\n    client.connect()?;\n    while let Some(p) = futures_util::StreamExt::next(&mut pubs).await {\n        println!(\"{}\", String::from_utf8_lossy(&p.data));\n    }\n    Ok::\u003C_, Box\u003Cdyn std::error::Error + Send + Sync>>(())\n});\n",[130,980,981,999,1003,1009,1032,1059,1104,1114,1152,1174,1186,1197,1244,1274,1279,1327],{"__ignoreMap":151},[155,982,983,985,987,989,992,994,997],{"class":157,"line":158},[155,984,162],{"class":161},[155,986,184],{"class":165},[155,988,170],{"class":169},[155,990,991],{"class":165},"centrifuge",[155,993,170],{"class":169},[155,995,996],{"class":165},"Client",[155,998,176],{"class":169},[155,1000,1001],{"class":157,"line":179},[155,1002,235],{"emptyLinePlaceholder":234},[155,1004,1005],{"class":157,"line":199},[155,1006,1008],{"class":1007},"sHwdD","\u002F\u002F build() takes the current Tokio runtime: run it inside Tauri's.\n",[155,1010,1011,1013,1015,1018,1020,1023,1025,1027,1030],{"class":157,"line":231},[155,1012,245],{"class":165},[155,1014,170],{"class":169},[155,1016,1017],{"class":165},"async_runtime",[155,1019,170],{"class":169},[155,1021,1022],{"class":265},"spawn",[155,1024,269],{"class":169},[155,1026,259],{"class":161},[155,1028,1029],{"class":161}," move",[155,1031,312],{"class":169},[155,1033,1034,1036,1039,1041,1044,1046,1049,1051,1053,1055,1057],{"class":157,"line":238},[155,1035,319],{"class":318},[155,1037,1038],{"class":244}," client ",[155,1040,325],{"class":169},[155,1042,1043],{"class":165}," Client",[155,1045,170],{"class":169},[155,1047,1048],{"class":265},"builder",[155,1050,269],{"class":169},[155,1052,391],{"class":169},[155,1054,388],{"class":387},[155,1056,391],{"class":169},[155,1058,677],{"class":169},[155,1060,1061,1063,1066,1068,1071,1073,1076,1078,1081,1084,1086,1089,1091,1093,1096,1098,1101],{"class":157,"line":256},[155,1062,354],{"class":169},[155,1064,1065],{"class":265},"get_token",[155,1067,576],{"class":169},[155,1069,1070],{"class":244},"_ctx",[155,1072,582],{"class":169},[155,1074,1075],{"class":161}," async",[155,1077,1029],{"class":161},[155,1079,1080],{"class":169}," {",[155,1082,1083],{"class":165}," Ok",[155,1085,269],{"class":169},[155,1087,1088],{"class":165},"Some",[155,1090,269],{"class":169},[155,1092,971],{"class":265},[155,1094,1095],{"class":169},"().",[155,1097,912],{"class":564},[155,1099,1100],{"class":169},"?))",[155,1102,1103],{"class":169}," })\n",[155,1105,1106,1108,1111],{"class":157,"line":315},[155,1107,354],{"class":169},[155,1109,1110],{"class":265},"build",[155,1112,1113],{"class":169},"()?;\n",[155,1115,1116,1118,1121,1123,1126,1128,1131,1133,1135,1137,1139,1142,1145,1148,1150],{"class":157,"line":345},[155,1117,319],{"class":318},[155,1119,1120],{"class":244}," sub ",[155,1122,325],{"class":169},[155,1124,1125],{"class":244}," client",[155,1127,331],{"class":169},[155,1129,1130],{"class":265},"new_subscription",[155,1132,269],{"class":169},[155,1134,391],{"class":169},[155,1136,477],{"class":387},[155,1138,391],{"class":169},[155,1140,1141],{"class":169},").",[155,1143,1144],{"class":265},"recoverable",[155,1146,1147],{"class":169},"(true).",[155,1149,1110],{"class":265},[155,1151,1113],{"class":169},[155,1153,1154,1156,1158,1161,1163,1166,1168,1171],{"class":157,"line":351},[155,1155,319],{"class":318},[155,1157,606],{"class":318},[155,1159,1160],{"class":244}," pubs ",[155,1162,325],{"class":169},[155,1164,1165],{"class":244}," sub",[155,1167,331],{"class":169},[155,1169,1170],{"class":265},"publications",[155,1172,1173],{"class":169},"();\n",[155,1175,1176,1179,1181,1184],{"class":157,"line":376},[155,1177,1178],{"class":244},"    sub",[155,1180,331],{"class":169},[155,1182,1183],{"class":265},"subscribe",[155,1185,1173],{"class":169},[155,1187,1188,1191,1193,1195],{"class":157,"line":402},[155,1189,1190],{"class":244},"    client",[155,1192,331],{"class":169},[155,1194,357],{"class":265},[155,1196,1113],{"class":169},[155,1198,1199,1202,1205,1207,1209,1211,1213,1216,1219,1221,1224,1226,1229,1232,1235,1238,1240,1242],{"class":157,"line":421},[155,1200,1201],{"class":564},"    while",[155,1203,1204],{"class":318}," let",[155,1206,410],{"class":165},[155,1208,269],{"class":169},[155,1210,127],{"class":244},[155,1212,295],{"class":169},[155,1214,1215],{"class":169}," =",[155,1217,1218],{"class":165}," futures_util",[155,1220,170],{"class":169},[155,1222,1223],{"class":165},"StreamExt",[155,1225,170],{"class":169},[155,1227,1228],{"class":265},"next",[155,1230,1231],{"class":169},"(&",[155,1233,1234],{"class":318},"mut",[155,1236,1237],{"class":244}," pubs",[155,1239,1141],{"class":169},[155,1241,912],{"class":564},[155,1243,312],{"class":169},[155,1245,1246,1249,1251,1254,1256,1258,1260,1263,1265,1267,1269,1271],{"class":157,"line":447},[155,1247,1248],{"class":265},"        println!",[155,1250,269],{"class":169},[155,1252,1253],{"class":169},"\"{}\"",[155,1255,217],{"class":169},[155,1257,292],{"class":165},[155,1259,170],{"class":169},[155,1261,1262],{"class":265},"from_utf8_lossy",[155,1264,1231],{"class":169},[155,1266,127],{"class":244},[155,1268,331],{"class":169},[155,1270,742],{"class":244},[155,1272,1273],{"class":169},"));\n",[155,1275,1276],{"class":157,"line":461},[155,1277,1278],{"class":169},"    }\n",[155,1280,1281,1284,1286,1289,1291,1294,1297,1300,1303,1305,1308,1310,1313,1316,1319,1321,1324],{"class":157,"line":489},[155,1282,1283],{"class":165},"    Ok",[155,1285,337],{"class":169},[155,1287,1288],{"class":244},"_",[155,1290,217],{"class":169},[155,1292,1293],{"class":165}," Box",[155,1295,1296],{"class":169},"\u003C",[155,1298,1299],{"class":161},"dyn",[155,1301,1302],{"class":244}," std",[155,1304,170],{"class":169},[155,1306,1307],{"class":244},"error",[155,1309,170],{"class":169},[155,1311,1312],{"class":165},"Error",[155,1314,1315],{"class":169}," +",[155,1317,1318],{"class":165}," Send",[155,1320,1315],{"class":169},[155,1322,1323],{"class":165}," Sync",[155,1325,1326],{"class":169},">>(())\n",[155,1328,1329],{"class":157,"line":500},[155,1330,1331],{"class":169},"});\n",[127,1333,1334,1335,1343,1344,331],{},"This client is separate from the plugin's: it emits no Tauri events. See the\n",[135,1336,1339,1342],{"href":1337,"rel":1338},"https:\u002F\u002Fdocs.rs\u002Fcentrifuge-client",[139],[130,1340,1341],{},"centrifuge-client"," docs"," for its API. On Android give it the\nsame TLS setup as the plugin, see ",[135,1345,97],{"href":98},[1347,1348,1349],"style",{},"html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .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}",{"title":151,"searchDepth":179,"depth":199,"links":1351},[1352,1353],{"id":124,"depth":179,"text":125},{"id":960,"depth":179,"text":961},"Use the plugin's client from Rust, or the centrifuge-client SDK directly.","md",null,{},{"title":54,"description":1354},"7bHXL_hOC59cJBD0F-pYht2mx_93_5DOaZaMRKneIgk",[1361,1363],{"title":50,"path":51,"stem":52,"description":1362,"children":-1},"How data crosses the Tauri bridge - base64 by default, raw JSON as an option.",{"title":58,"path":59,"stem":60,"description":1364,"children":-1},"Allow the plugin's commands in a Tauri capability.",1794166800622]