/// <summary> /// 注册客户端Channel /// </summary> /// <param name="channel">具体的Channel实体</param> /// <remarks>一般来说,客户端Channel针对每种协议注册一个便可以</remarks> public static void RegisterClientChannel(RpcClientChannel channel) { lock (_syncRoot) { if (!_channels.ContainsKey(channel.Protocol)) { _channels.Add(channel.Protocol, channel); } } }
/// <summary> /// 获取一个连接 /// </summary> /// <param name="serverUri"></param> /// <param name="serviceRole"></param> /// <returns></returns> public static RpcConnection GetConnection(ServerUri serverUri, string serviceRole) { RpcClientChannel channel = GetChannel(serverUri); RpcConnection conn; lock (_syncRoot) { if (!_connections.TryGetValue(serverUri, out conn)) { conn = channel.CreateConnection(serverUri, RpcConnectionMode.Simplex); // conn.ServiceRole = _connections.Add(serverUri, conn); } } return(conn); }