示例#1
0
 def dispatch_client(self):
     try:
         while True:
             # Считать длинну сообщения
             message_length = yield self._stream.read_bytes(2)
             # Распоковать
             length = struct.unpack("!H", message_length)[0]
             # Считать сообщение
             message = yield self._stream.read_bytes(length)
             # Распоковать запрос
             request = Message.unpack(message=message)
             # Создать обработчик запросов
             handler = self._handler(request, self._id, self._storage)
             # Обработать запрос
             response = yield handler.process_request()
             # Вернуть ответ
             if response:
                 response = Message(response[0], kwargs=response[1])
                 yield self._stream.write(response.pack())
     except iostream.StreamClosedError:
         pass
示例#2
0
 def test_pack(self):
     r = Message("LOGIN", kwargs={"username": "******"})
     packing = r.pack()
     self.assertIsInstance(packing, bytes)