public void OpenStream(StreamSessionParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } if (string.IsNullOrWhiteSpace(parameters.Host)) { throw new ArgumentException(@"Host is required", nameof(parameters)); } if (_session != null) { // Another session is open. // Close the session first before opening this new one CloseSession(); } // Fix the parameters if (!parameters.Host.StartsWith(">tcp://")) { parameters.Host = ">tcp://" + parameters.Host; } if (!parameters.Host.EndsWith(":")) { parameters.Host = parameters.Host + ":"; } // Open a new session and open it var session = new StreamSession(this, _resultFactory, parameters); OpenSession(session); }
public StreamSession(ISessionHandler sessionHandler, IResultFactory resultFactory, StreamSessionParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } _sessionHandler = sessionHandler; _resultFactory = resultFactory; _host = parameters.Host; _port = parameters.Port; _syncContext = SynchronizationContext.Current; }