示例#1
0
 def test_webframe_from_bytes_non_fragmented_with_mask(self):
     bstr = b'\x81\x89\x13}\xfd\xb7G8\xae\xe339\xbc\xe3R'
     reader = self._get_mock_bytes_reader(bytes=bstr)
     f = WebSocketFrame.from_bytes_reader(reader)
     self.assertEqual(f.headers.mask, 327024055)
     self.assertEqual(f.headers.payload_length, 9)
     self.assertEqual(f.message, "TEST DATA")
示例#2
0
 def test_webframe_from_bytes_non_fragmented_no_mask(self):
     bstr = b'\x81\tTEST DATA'
     reader = self._get_mock_bytes_reader(bytes=bstr)
     f = WebSocketFrame.from_bytes_reader(reader)
     self.assertEqual(f.message, "TEST DATA")
     self.assertEqual(f.headers.payload_length, 9)
     self.assertIsNone(f.headers.mask)
示例#3
0
 def test_webframe_from_bytes_non_fragmented(self):
     data = b'\x81\x89I\x96k\xa8\x1d\xd38\xfci\xd2*\xfc\x08'
     reader = self._get_mock_bytes_reader(bytes=data)
     f = WebSocketFrame.from_bytes_reader(reader)
     self.assertEqual(f.message, "TEST DATA")
     self.assertEqual(f.headers.payload_length, 9)
     self.assertEqual(f.headers.opcode, 1)
     self.assertEqual(f.headers.mask_flag, 1)
     self.assertEqual(f.headers.mask,
                      bits_value("01001001100101100110101110101000"))
示例#4
0
    def connection_handler(self, conn):
        bytes_reader = SocketBytesReader(conn)

        self.logger.debug("Websocket server handling incoming data")
        try:
            frame = WebSocketFrame.from_bytes_reader(bytes_reader)
        except (SocketException, ConnectionResetError):
            self.logger.warning(
                "Connection closed prematurely, marking for closing")
            conn.mark_for_closing()
            return None

        return frame
示例#5
0
 def test_webframe_premature_ending(self):
     bstr = b'\x819'
     reader = self._get_mock_bytes_reader(bytes=bstr)
     with self.assertRaises(StopIteration):
         WebSocketFrame.from_bytes_reader(reader)