// As Server private bool receiveOpeningHandshake() { #if DEBUG var req = RequestHandshake.Parse(_context); Console.WriteLine("WS: Info@receiveOpeningHandshake: Opening handshake from client:\n"); Console.WriteLine(req.ToString()); #endif if (!checkRequestIsValid()) { onError("Invalid WebSocket connection request."); close(HttpStatusCode.BadRequest); return(false); } _base64key = _context.SecWebSocketKey; if (_context.Headers.Exists("Sec-WebSocket-Protocol")) { _protocols = _context.Headers["Sec-WebSocket-Protocol"]; } if (_context.Headers.Exists("Sec-WebSocket-Extensions")) { _extensions = _context.Headers["Sec-WebSocket-Extensions"]; } return(true); }
// As Client private RequestHandshake createOpeningHandshake() { var path = _uri.PathAndQuery; var host = _uri.DnsSafeHost; var port = ((System.Net.IPEndPoint)_tcpClient.Client.RemoteEndPoint).Port; if (port != 80) { host += ":" + port; } var req = new RequestHandshake(path); req.AddHeader("Host", host); req.AddHeader("Sec-WebSocket-Key", _base64key); if (!Ext.IsNullOrEmpty(_protocols)) { req.AddHeader("Sec-WebSocket-Protocol", _protocols); } req.AddHeader("Sec-WebSocket-Version", _version); if (!string.IsNullOrEmpty(this._origin)) { req.AddHeader("Origin", this._origin); } //extra headers if (this.ExtraHeaders != null) { foreach (var i in this.ExtraHeaders) { req.AddHeader(i.Key, i.Value); } } return(req); }
// As Client private void sendRequestHandshake(RequestHandshake request) { #if DEBUG Console.WriteLine("WS: Info@sendRequestHandshake: Request handshake from client:\n"); Console.WriteLine(request.ToString()); #endif writeHandshake(request); }
// As client private void send(RequestHandshake request) { #if DEBUG Console.WriteLine("WS: Info@send: Request handshake to server:\n"); Console.WriteLine(request.ToString()); #endif _wsStream.Write(request); }
// As Server private RequestHandshake receiveOpeningHandshake() { var req = RequestHandshake.Parse(_context); #if DEBUG Console.WriteLine("WS: Info@receiveOpeningHandshake: Opening handshake from client:\n"); Console.WriteLine(req.ToString()); #endif return(req); }
// As Client private RequestHandshake createOpeningHandshake() { var path = _uri.PathAndQuery; var host = _uri.Port == 80 ? _uri.DnsSafeHost : _uri.Authority; var req = new RequestHandshake(path); req.AddHeader("Host", host); req.AddHeader("Sec-WebSocket-Key", _base64key); if (!_protocols.IsNullOrEmpty()) { req.AddHeader("Sec-WebSocket-Protocol", _protocols); } req.AddHeader("Sec-WebSocket-Version", _version); return(req); }
// As Client private RequestHandshake createOpeningHandshake() { var path = _uri.PathAndQuery; var host = _uri.DnsSafeHost; var port = ((System.Net.IPEndPoint)_tcpClient.Client.RemoteEndPoint).Port; if (port != 80) { host += ":" + port; } var req = new RequestHandshake(path); req.AddHeader("Host", host); req.AddHeader("Sec-WebSocket-Key", _base64key); if (!_protocols.IsNullOrEmpty()) { req.AddHeader("Sec-WebSocket-Protocol", _protocols); } req.AddHeader("Sec-WebSocket-Version", _version); return(req); }
// As Server private bool isValidRequest(RequestHandshake request, out string message) { if (!request.IsWebSocketRequest) { message = "Invalid WebSocket request."; return(false); } if (_uri.IsAbsoluteUri && !isValidRequestHost(request.Headers["Host"], out message)) { return(false); } if (!request.HeaderExists("Sec-WebSocket-Version", _version)) { message = "Unsupported Sec-WebSocket-Version."; return(false); } _base64key = request.Headers["Sec-WebSocket-Key"]; if (request.HeaderExists("Sec-WebSocket-Protocol")) { _protocols = request.Headers["Sec-WebSocket-Protocol"]; } if (request.HeaderExists("Sec-WebSocket-Extensions")) { _extensions = request.Headers["Sec-WebSocket-Extensions"]; } _queryString = request.QueryString; message = String.Empty; return(true); }
// As client private ResponseHandshake sendRequestHandshake(RequestHandshake request) { send(request); return receiveResponseHandshake(); }
// As client private void send(RequestHandshake request) { #if DEBUG Console.WriteLine("WS: Info@send: Request handshake to server:\n"); Console.WriteLine(request.ToString()); #endif _wsStream.WriteHandshake(request); }
// As client private RequestHandshake createRequestHandshake() { var path = _uri.PathAndQuery; var host = _uri.Port == 80 ? _uri.DnsSafeHost : _uri.Authority; var req = new RequestHandshake(path); req.AddHeader("Host", host); if (_origin.Length > 0) req.AddHeader("Origin", _origin); req.AddHeader("Sec-WebSocket-Key", _base64key); if (!_protocols.IsNullOrEmpty()) req.AddHeader("Sec-WebSocket-Protocol", _protocols); var extensions = createRequestExtensions(); if (extensions.Length > 0) req.AddHeader("Sec-WebSocket-Extensions", extensions); req.AddHeader("Sec-WebSocket-Version", _version); if (_preAuth && _credentials != null) req.SetAuthorization(new AuthenticationResponse(_credentials)); if (_cookies.Count > 0) req.SetCookies(_cookies); return req; }
// As Server private bool isValidRequest(RequestHandshake request, out string message) { if (!request.IsWebSocketRequest) { message = "Invalid WebSocket request."; return false; } if (_uri.IsAbsoluteUri && !isValidRequestHost(request.Headers["Host"], out message)) return false; if (!request.HeaderExists("Sec-WebSocket-Version", _version)) { message = "Unsupported Sec-WebSocket-Version."; return false; } _base64key = request.Headers["Sec-WebSocket-Key"]; if (request.HeaderExists("Sec-WebSocket-Protocol")) _protocols = request.Headers["Sec-WebSocket-Protocol"]; if (request.HeaderExists("Sec-WebSocket-Extensions")) _extensions = request.Headers["Sec-WebSocket-Extensions"]; _queryString = request.QueryString; message = String.Empty; return true; }
// As Client private RequestHandshake createOpeningHandshake() { var path = _uri.PathAndQuery; var host = _uri.DnsSafeHost; var port = ((System.Net.IPEndPoint)_tcpClient.Client.RemoteEndPoint).Port; if (port != 80) host += ":" + port; var req = new RequestHandshake(path); req.AddHeader("Host", host); req.AddHeader("Sec-WebSocket-Key", _base64key); if (!Ext.IsNullOrEmpty(_protocols)) req.AddHeader("Sec-WebSocket-Protocol", _protocols); req.AddHeader("Sec-WebSocket-Version", _version); if (!string.IsNullOrEmpty(this._origin)) req.AddHeader("Origin", this._origin); //extra headers if (this.ExtraHeaders != null) foreach (var i in this.ExtraHeaders) req.AddHeader(i.Key, i.Value); return req; }
// As Client private void sendOpeningHandshake(RequestHandshake request) { #if DEBUG Console.WriteLine("WS: Info@sendOpeningHandshake: Opening handshake from client:\n"); Console.WriteLine(request.ToString()); #endif writeHandshake(request); }
// As Client private RequestHandshake createOpeningHandshake() { var path = _uri.PathAndQuery; var host = _uri.DnsSafeHost; var port = ((System.Net.IPEndPoint)_tcpClient.Client.RemoteEndPoint).Port; if (port != 80) host += ":" + port; var req = new RequestHandshake(path); req.AddHeader("Host", host); req.AddHeader("Sec-WebSocket-Key", _base64key); if (!_protocols.IsNullOrEmpty()) req.AddHeader("Sec-WebSocket-Protocol", _protocols); req.AddHeader("Sec-WebSocket-Version", _version); return req; }
// As client private RequestHandshake createRequestHandshake() { var path = _uri.PathAndQuery; var host = _uri.Port == 80 ? _uri.DnsSafeHost : _uri.Authority; var req = new RequestHandshake(path); req.AddHeader("Host", host); req.AddHeader("Sec-WebSocket-Key", _base64key); if (!_protocols.IsNullOrEmpty()) req.AddHeader("Sec-WebSocket-Protocol", _protocols); req.AddHeader("Sec-WebSocket-Version", _version); if (_cookies.Count > 0) req.SetCookies(_cookies); return req; }