internal static HandshakeRequest Parse(string[] headerParts) { var requestLine = headerParts[0].Split(new[] { ' ' }, 3); if (requestLine.Length != 3) { throw new ArgumentException("Invalid request line: " + headerParts[0]); } var headers = new WebHeaderCollection(); for (int i = 1; i < headerParts.Length; i++) { headers.SetInternally(headerParts[i], false); } var req = new HandshakeRequest(new Version(requestLine[2].Substring(5)), headers); req._method = requestLine[0]; req._uri = requestLine[1]; return(req); }
// As client private HandshakeResponse sendHandshakeRequest(HandshakeRequest request) { send (request); return receiveHandshakeResponse (); }
// As client private void send(HandshakeRequest request) { _logger.Debug (String.Format ( "A WebSocket connection request to {0}:\n{1}", _uri, request)); _stream.WriteHandshake (request); }
// As client private HandshakeRequest createHandshakeRequest() { var path = _uri.PathAndQuery; var host = _uri.Port == 80 ? _uri.DnsSafeHost : _uri.Authority; var req = new HandshakeRequest (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 client private HandshakeRequest createHandshakeRequest() { var path = _uri.PathAndQuery; var host = _uri.Port == 80 ? _uri.DnsSafeHost : _uri.Authority; var req = new HandshakeRequest (path); var headers = req.Headers; headers ["Host"] = host; if (!_origin.IsNullOrEmpty ()) headers ["Origin"] = _origin; headers ["Sec-WebSocket-Key"] = _base64Key; if (_protocols != null) headers ["Sec-WebSocket-Protocol"] = _protocols.ToString (", "); var extensions = createExtensionsRequest (); if (extensions != null) headers ["Sec-WebSocket-Extensions"] = extensions; headers ["Sec-WebSocket-Version"] = _version; AuthenticationResponse authRes = null; if (_authChallenge != null && _credentials != null) { authRes = new AuthenticationResponse (_authChallenge, _credentials, _nonceCount); _nonceCount = authRes.NonceCount; } else if (_preAuth) authRes = new AuthenticationResponse (_credentials); if (authRes != null) headers ["Authorization"] = authRes.ToString (); if (_cookies.Count > 0) req.SetCookies (_cookies); return req; }
internal static HandshakeRequest Parse (string[] headerParts) { var requestLine = headerParts[0].Split (new[] { ' ' }, 3); if (requestLine.Length != 3) throw new ArgumentException ("Invalid request line: " + headerParts[0]); var headers = new WebHeaderCollection (); for (int i = 1; i < headerParts.Length; i++) headers.SetInternally (headerParts[i], false); var req = new HandshakeRequest (new Version (requestLine[2].Substring (5)), headers); req._method = requestLine[0]; req._uri = requestLine[1]; return req; }