/// <summary>创建连接,单工连接或者双工连接,适用于高级的Channel</summary> public virtual RpcConnection CreateConnection(ServerUri serverUri, RpcConnectionMode mode) { if (mode == RpcConnectionMode.Simplex) { return(new RpcSimplexConnection(this, serverUri)); } else { throw new NotSupportedException(); } }
/// <summary> /// 创建连接 /// </summary> /// <param name="serverUri"></param> /// <param name="mode">单工或是双工连接</param> /// <returns></returns> public override RpcConnection CreateConnection(ServerUri serverUri, RpcConnectionMode mode) { switch (mode) { case RpcConnectionMode.Simplex: return(new RpcTcpSimplexConnection(this, (TcpUri)serverUri, p_channelSettings.ConcurrentConnection)); case RpcConnectionMode.Duplex: return(new RpcTcpDuplexConnection(this, (TcpUri)serverUri)); default: throw new NotSupportedException(); } }
/// <summary> /// 创建一个RpcConnection /// </summary> /// <param name="mode">模式</param> /// <param name="direction">方向</param> /// <remarks>被动连接(Server)在连接创建时建立,主动连接(Client)在BeginConnect后连接</remarks> public RpcConnection(RpcConnectionMode mode, RpcConnectionDirection direction) { _mode = mode; _direction = direction; }