From 4021d17bbc7e9d3ca3f54fdd5e0545c170e9752b Mon Sep 17 00:00:00 2001 From: troido Date: Thu, 23 Apr 2020 09:49:41 +0200 Subject: gave more message parsing code to the connection --- asciifarmclient/connection.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'asciifarmclient/connection.py') diff --git a/asciifarmclient/connection.py b/asciifarmclient/connection.py index 370ef8a..bdcc913 100644 --- a/asciifarmclient/connection.py +++ b/asciifarmclient/connection.py @@ -2,6 +2,8 @@ import socket from asciifarmclient.common.tcommunicate import send, receive +from asciifarmclient.common import messages +import json class Connection: @@ -17,14 +19,23 @@ class Connection: def connect(self, address): self.sock.connect(address) + def receive(self): + databytes = receive(self.sock) + if len(databytes) == 0: + return None + datastr = databytes.decode('utf-8') + msg = json.loads(datastr) + message = messages.messages[msg[0]].from_json(msg) + return message + def listen(self, callback, onError): while True: try: - data = receive(self.sock) + message = self.receive() except Exception as err: onError(err) else: - callback(data) + callback(message) def send(self, message): - send(self.sock, message) + send(self.sock, message.to_json_bytes()) -- cgit