Example #1
0
        /// <summary>
        /// Creates an <see cref="IEtpServer"/> instance.
        /// </summary>
        /// <param name="webSocket">The websocket to create the server for.</param>
        /// <param name="etpVersion">The ETP version for the session.</param>
        /// <param name="encoding">The ETP encoding for the session.</param>
        /// <param name="headers">The websocket headers.</param>
        /// <returns>The created server.</returns>
        protected override IEtpServer CreateServerCore(IEtpServerWebSocket webSocket, EtpVersion etpVersion, EtpEncoding encoding, IDictionary <string, string> headers)
        {
            var ws = webSocket as EtpServerWebSocket;

            if (ws == null)
            {
                throw new ArgumentException("Must be a native websocket", nameof(webSocket));
            }

            return(new EtpServer(ws.WebSocket, etpVersion, encoding, EndpointInfo, parameters: EndpointParameters.CloneForVersion(etpVersion), headers: headers));
        }
Example #2
0
        /// <summary>
        /// Creates an <see cref="IEtpServer"/> instance.
        /// </summary>
        /// <param name="webSocket">The websocket to create the server for.</param>
        /// <param name="etpVersion">The ETP version for the session.</param>
        /// <param name="encoding">The ETP encoding for the session.</param>
        /// <param name="headers">The websocket headers.</param>
        /// <returns>The created server.</returns>
        public IEtpServer CreateServer(IEtpServerWebSocket webSocket, EtpVersion etpVersion, EtpEncoding encoding, IDictionary <string, string> headers)
        {
            if (webSocket == null)
            {
                throw new ArgumentNullException(nameof(webSocket));
            }
            if (!IsEtpVersionSupported(etpVersion))
            {
                throw new ArgumentException($"Unsupported ETP version: {etpVersion.ToVersionString()}");
            }

            var server = CreateServerCore(webSocket, etpVersion, encoding, headers ?? new Dictionary <string, string>());

            Logger.Debug(Log("[{0}] Server created.", server.SessionKey));

            server.SessionClosed     += OnServerSessionClosed;
            Servers[server.SessionId] = server;

            ServerCreated?.Invoke(this, new EtpServerEventArgs(server));

            return(server);
        }
Example #3
0
 /// <summary>
 /// Creates an <see cref="IEtpServer"/> instance.
 /// </summary>
 /// <param name="webSocket">The websocket to create the server for.</param>
 /// <param name="etpVersion">The ETP version for the session.</param>
 /// <param name="encoding">The ETP encoding for the session.</param>
 /// <param name="headers">The websocket headers.</param>
 /// <returns>The created server.</returns>
 protected abstract IEtpServer CreateServerCore(IEtpServerWebSocket webSocket, EtpVersion etpVersion, EtpEncoding encoding, IDictionary <string, string> headers);