示例#1
0
    def __init__(self, client_conn, server_conn, handshake_flow, live=None):
        super().__init__("websocket", client_conn, server_conn, live)

        self.messages: List[WebSocketMessage] = []
        """A list containing all WebSocketMessage's."""
        self.close_sender = 'client'
        """'client' if the client initiated connection closing."""
        self.close_code = CloseReason.NORMAL_CLOSURE
        """WebSocket close code."""
        self.close_message = '(message missing)'
        """WebSocket close message."""
        self.close_reason = 'unknown status code'
        """WebSocket close reason."""
        self.stream = False
        """True of this connection is streaming directly to the other endpoint."""
        self.handshake_flow = handshake_flow
        """The HTTP flow containing the initial WebSocket handshake."""
        self.ended = False
        """True when the WebSocket connection has been closed."""

        self._inject_messages_client = queue.Queue(maxsize=1)
        self._inject_messages_server = queue.Queue(maxsize=1)

        if handshake_flow:
            self.client_key = websocket.get_client_key(
                handshake_flow.request.headers)
            self.client_protocol = websocket.get_protocol(
                handshake_flow.request.headers)
            self.client_extensions = websocket.get_extensions(
                handshake_flow.request.headers)
            self.server_accept = websocket.get_server_accept(
                handshake_flow.response.headers)
            self.server_protocol = websocket.get_protocol(
                handshake_flow.response.headers)
            self.server_extensions = websocket.get_extensions(
                handshake_flow.response.headers)
        else:
            self.client_key = ''
            self.client_protocol = ''
            self.client_extensions = ''
            self.server_accept = ''
            self.server_protocol = ''
            self.server_extensions = ''
示例#2
0
def test_get_protocol():
    assert websocket.get_protocol({}) is None
    assert websocket.get_protocol({"sec-websocket-protocol": "foo"}) == "foo"