digital vor 8 Jahren
Ursprung
Commit
0a6a943912
1 geänderte Dateien mit 12 neuen und 10 gelöschten Zeilen
  1. 12 10
      network/__init__.py

+ 12 - 10
network/__init__.py

@@ -43,25 +43,25 @@ class ConnHandlerBase(object):
         self.addr = addr
         self.server = server
         self.block_size = 1024
-        self.welcome_client()
+        # self.welcome_client()
         self.status="connected"
 
-    def welcome_client(self):
+    async def welcome_client(self):
         pass
 
-    def handle(self, data):
+    async def handle(self, data):
         return
 
-    def recv(self):
-        data_received = self.socket.recv(self.block_size)
+    async def recv(self):
+        data_received = await self.socket.recv(self.block_size)
         data_decoded = data_received.decode("utf-8")
         return data_decoded
 
-    def send(self, msg):
+    async def send(self, msg):
         msg_encoded = bytes(msg, "utf-8")
         lschat.info("Server:"+msg)
         try:
-            self.socket.send(msg_encoded)
+            await self.socket.send(msg_encoded)
             return True
         except Exception as e:
             lserver.error(e, exc_info=True)
@@ -180,7 +180,7 @@ class Server(object):
         # self.socket.settimeout(1)
 
     def start(self):
-        lserver.debug(dir(self))
+        # lserver.debug(dir(self))
         curio.run(self.run)
 
     async def run(self):
@@ -201,7 +201,7 @@ class Server(object):
             handler = self.make_handler(conn, addr)
             self.register_conn(conn, addr)
             self.register_handler(handler, conn)
-            await curio.spawn(self.wait_for_client(conn))
+            await curio.spawn(self.wait_for_client(conn,handler))
 
             # for s in read_sockets_confirmed:
             #     socket_handler = self.conn_to_handler.get(s, None)
@@ -258,9 +258,11 @@ class Server(object):
                     handler.close()
                 else:
                     lschat.info("Client:"+data.strip())
-                    socket_handler.handle(data)
+                    await handler.handle(data)
             except Exception as e:
                     lserver.error(e, exc_info=True)
+                    # saver to use time.sleep
+                    time.sleep(0.1)
 
 
 class Client(threading.Thread):