Explorar o código

add basic websocket

David %!s(int64=10) %!d(string=hai) anos
pai
achega
ab70cb9a79
Modificáronse 2 ficheiros con 32 adicións e 5 borrados
  1. 5 5
      client/main.py
  2. 27 0
      client/websocket.py

+ 5 - 5
client/main.py

@@ -5,7 +5,7 @@ from clock import Clock
 from slides import Slides
 from preguntas import Preg
 from enum import Enum
-#from websocket import ws
+from websocket import Websocket
 import time
 import signal
 import sys
@@ -28,15 +28,16 @@ class Main(object):
         self.k = Keyboard(self.next,self.prev,self.toggle)
         self.k.setDaemon(True)
     
-        #self.ws = Websocket()
         self.c = Clock(self.timerTick)
         self.c.setDaemon(True)
     
+        self.ws = Websocket()
+        self.ws.setDaemon(True)
+
         self.slides = Slides("../node/")
         self.preg = Preg()
 
-        #self.ws.start()
-
+        self.ws.start()
         self.k.start()
         self.c.start()
         
@@ -53,7 +54,6 @@ class Main(object):
             self.s.send(self.slides.prev())
 
     def toggle(self):
-        print("toggle")
         if self.mode == Mode.diapo:
             if len(self.preg.preg) == 0:
                 print("NO preg")

+ 27 - 0
client/websocket.py

@@ -0,0 +1,27 @@
+import asyncio
+import websockets
+import threading
+
+class Websocket(threading.Thread):
+    def __init__(self):
+        super(Websocket, self).__init__()
+        self.start_server = websockets.serve(self.handle_input, '127.0.0.1', 5678)
+        #asyncio.get_event_loop().run_until_complete(start_server)
+        #asyncio.get_event_loop().run_forever()
+        self.loop = asyncio.get_event_loop()
+
+    def run(self):
+        asyncio.set_event_loop(self.loop)
+        self.loop.run_until_complete(self.start_server)
+        self.loop.run_forever()
+        print("finitO?")
+    async def handle_input(self,websocket, path):
+        while True:
+            try:
+                data = await websocket.recv()
+                print("{}".format(data))
+            except websockets.exceptions.ConnectionClosed as c:
+                print( "client dc'd")
+                break
+    
+