zbus_lib/client/
component.rs

1use std::collections::HashMap;
2use std::sync::Arc;
3use std::sync::mpsc::Sender;
4
5use log::info;
6use serde_json::Value;
7
8use crate::client::RpcClient;
9use crate::err::OkResult;
10use crate::message::{Message, Request};
11use crate::rpc::{IOHandlers, Protocol, WsRpcHandler};
12use crate::wsocket::{Instruct, WsClient};
13
14//创建一个MQ通道(如果这个通道被其它服务创建过了,并不会再创建或者是MQ服务分发到不同的相同名的通道),并且订阅这个通道
15// 接收到MQ消息按RPC消息处理
16//对wsClient进行封装
17pub struct WsRpcClient {
18    ws_client: WsClient,
19
20}
21
22
23impl WsRpcClient {
24    pub fn connect(url: &'static str) -> Self {
25        let ws_client = WsClient::connect(url, None).unwrap();
26        Self { ws_client }
27    }
28
29    pub fn handler(&self) -> WsRpcHandler {
30        WsRpcHandler {
31            handler: self.ws_client.handler()
32        }
33    }
34    pub fn reconnect(&self) -> OkResult {
35        self.ws_client.reconnect()
36    }
37}