-
- def dataReceived(self, data):
- reactor.callInThread(self.deserializeWorldMessage, data)
-
- def deserializeWorldMessage(self, data):
- world_message = messages_pb2.WorldMessage()
- world_message.ParseFromString(str(data[4:])) # cut first 4 bytes since they only indicate the message length
- self.HandleData(world_message)
-
- def HandleData(self, worldMessage):
- print "======= CmsgSendData ========"
- # some logic here
- self.sendWorldMessage(worldMessage.SerializeToString())
-
- def sendWorldMessage(self, worldMessage):
- # cpu heavy operation like compression
- # dont forget to add the size of the message as !I prefix
- reactor.callFromThread(self.sendData, worldMessage)
-
- def sendData(self, data):
- self.transport.write(data)
-