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);
        }
Beispiel #2
0
        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;
        }