def receive(self):
multipart = await self.socket.recv_multipart()
parsed_message = parse_multipart_message(multipart)
if not parsed_message:
log.error('Received junk off the wire')
raise MercuryClientException('Message is malformed')
try:
message = msgpack.unpackb(parsed_message['message'], encoding='utf-8')
except TypeError as type_error:
log.error('Received unpacked, non-string type: %s : %s' % (type(parsed_message),
type_error))
await self.send_error(parsed_message['address'], 'Client error, message is not packed')
raise MercuryClientException('Message is malformed')
except (msgpack.UnpackException, msgpack.ExtraData) as msgpack_exception:
log.error('Received invalid request: %s' % str(
msgpack_exception))
await self.send_error(parsed_message['address'], 'Client error, message is malformed')
raise MercuryClientException('Message is malformed')
return parsed_message['address'], message
评论列表
文章目录