Пример #1
0
    def test_client_handshake_headers(self):
        h = websockets.client_handshake_headers(version='42')
        assert h['sec-websocket-version'] == '42'

        h = websockets.client_handshake_headers(key='some-key')
        assert h['sec-websocket-key'] == 'some-key'

        h = websockets.client_handshake_headers(protocol='foobar')
        assert h['sec-websocket-protocol'] == 'foobar'

        h = websockets.client_handshake_headers(extensions='foo; bar')
        assert h['sec-websocket-extensions'] == 'foo; bar'
Пример #2
0
 def resolve(self, settings, msg=None):
     tokens = self.tokens[:]
     if self.ws:
         if not self.method:
             tokens.insert(1, Method("get"))
         for i in websockets.client_handshake_headers().lst:
             if not utils.get_header(i[0], self.headers):
                 tokens.append(
                     Header(ValueLiteral(i[0]), ValueLiteral(i[1])))
     if not self.raw:
         if not utils.get_header("Content-Length", self.headers):
             if self.body:
                 length = len(self.body.value.get_generator(settings))
                 tokens.append(
                     Header(
                         ValueLiteral("Content-Length"),
                         ValueLiteral(str(length)),
                     ))
         if settings.request_host:
             if not utils.get_header("Host", self.headers):
                 tokens.append(
                     Header(ValueLiteral("Host"),
                            ValueLiteral(settings.request_host)))
     intermediate = self.__class__(tokens)
     return self.__class__(
         [i.resolve(settings, intermediate) for i in tokens])
Пример #3
0
 def resolve(self, settings, msg=None):
     tokens = self.tokens[:]
     if self.ws:
         if not self.method:
             tokens.insert(
                 1,
                 Method("get")
             )
         for i in websockets.client_handshake_headers().lst:
             if not utils.get_header(i[0], self.headers):
                 tokens.append(
                     Header(ValueLiteral(i[0]), ValueLiteral(i[1]))
                 )
     if not self.raw:
         if not utils.get_header("Content-Length", self.headers):
             if self.body:
                 length = len(self.body.value.get_generator(settings))
                 tokens.append(
                     Header(
                         ValueLiteral("Content-Length"),
                         ValueLiteral(str(length)),
                     )
                 )
         if settings.request_host:
             if not utils.get_header("Host", self.headers):
                 tokens.append(
                     Header(
                         ValueLiteral("Host"),
                         ValueLiteral(settings.request_host)
                     )
                 )
     intermediate = self.__class__(tokens)
     return self.__class__(
         [i.resolve(settings, intermediate) for i in tokens]
     )
Пример #4
0
    def connect(self):
        super(WebSocketsClient, self).connect()

        preamble = http.request_preamble("GET", "/")
        self.wfile.write(preamble + "\r\n")
        headers = websockets.client_handshake_headers()
        self.client_nonce = headers.get_first("sec-websocket-key")
        self.wfile.write(headers.format() + "\r\n")
        self.wfile.flush()

        resp = http.read_response(self.rfile, "get", None)
        server_nonce = websockets.check_server_handshake(resp.headers)

        if not server_nonce == websockets.create_server_nonce(self.client_nonce):
            self.close()
Пример #5
0
    def connect(self):
        super(WebSocketsClient, self).connect()

        preamble = http.request_preamble("GET", "/")
        self.wfile.write(preamble + "\r\n")
        headers = websockets.client_handshake_headers()
        self.client_nonce = headers.get_first("sec-websocket-key")
        self.wfile.write(headers.format() + "\r\n")
        self.wfile.flush()

        resp = http.read_response(self.rfile, "get", None)
        server_nonce = websockets.check_server_handshake(resp.headers)

        if not server_nonce == websockets.create_server_nonce(
                self.client_nonce):
            self.close()
Пример #6
0
 def test_check_client_handshake(self):
     headers = websockets.client_handshake_headers("key")
     assert websockets.check_client_handshake(headers) == "key"
     headers["Upgrade"] = ["not_websocket"]
     assert not websockets.check_client_handshake(headers)
Пример #7
0
 def test_check_client_handshake(self):
     headers = websockets.client_handshake_headers("key")
     assert websockets.check_client_handshake(headers) == "key"
     headers["Upgrade"] = ["not_websocket"]
     assert not websockets.check_client_handshake(headers)