/// <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)); }
/// <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); }
/// <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);