Inheritance: HandshakeBase
Example #1
0
        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);
        }
Example #2
0
 // As client
 private HandshakeResponse sendHandshakeRequest(HandshakeRequest request)
 {
     send (request);
       return receiveHandshakeResponse ();
 }
Example #3
0
 // As client
 private void send(HandshakeRequest request)
 {
     _logger.Debug (String.Format (
     "A WebSocket connection request to {0}:\n{1}", _uri, request));
       _stream.WriteHandshake (request);
 }
Example #4
0
        // 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;
        }
Example #5
0
        // 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;
        }
Example #6
0
    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;
    }