/// <summary> /// 创建一个适用于主动方的SAI Connection。 /// </summary> protected SaiConnection(RsspEndPoint rsspEP, IEnumerable <RsspTcpLinkConfig> linkConfig, ISaiConnectionObserver observer, IAleTunnelEventNotifier tunnelEventNotifier) : this(rsspEP, observer) { _maslConnection = new MaslConnectionClient(rsspEP, linkConfig, this, tunnelEventNotifier); }
/// <summary> /// 创建一个适用于被动方的SAI Connection。 /// </summary> protected SaiConnection(RsspEndPoint rsspEP, ISaiConnectionObserver observer, IAleTunnelEventNotifier tunnelEventNotifier) : this(rsspEP, observer) { _maslConnection = new MaslConnectionServer(rsspEP, this, tunnelEventNotifier); }
/// <summary> /// 构造函数。 /// </summary> private SaiConnection(RsspEndPoint rsspEP, ISaiConnectionObserver observer) { _rsspEndPoint = rsspEP; _observer = observer; _seqNoManager = new SeqNoManager(0, ushort.MaxValue, rsspEP.SeqNoThreshold); _handshakeTimeoutMgr = new HandshakeTimeoutManager(SaiConnection.HandshakeTimeout, this); this.Initialize(); }
/// <summary> /// 创建一个适用于主动方的SAI Connection。 /// </summary> public SaiConnectionClient(RsspEndPoint rsspEP, IEnumerable <RsspTcpLinkConfig> linkConfig, ISaiConnectionObserver observer, IAleTunnelEventNotifier tunnelEventNotifier) : base(rsspEP, linkConfig, observer, tunnelEventNotifier) { }
/// <summary> /// 创建一个适用于被动方的SAI Connection。 /// </summary> public SaiConnectionServer(RsspEndPoint rsspEP, ISaiConnectionObserver observer, IAleTunnelEventNotifier tunnelEventNotifier) : base(rsspEP, observer, tunnelEventNotifier) { }