diff options
| author | troido <troido@protonmail.com> | 2020-04-23 09:49:41 +0200 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-04-23 09:49:41 +0200 |
| commit | 4021d17bbc7e9d3ca3f54fdd5e0545c170e9752b (patch) | |
| tree | 228871d56ed53446397159431e8e8cbf6801b4d0 /asciifarmclient/connection.py | |
| parent | 550f9b7b4cbf7ddacc88c2762893d8860566bfdf (diff) | |
gave more message parsing code to the connection
Diffstat (limited to 'asciifarmclient/connection.py')
| -rw-r--r-- | asciifarmclient/connection.py | 17 |
1 files changed, 14 insertions, 3 deletions
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()) |
