| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import asyncio
- import websockets
- import threading
- import json
- class Websocket(threading.Thread):
- def __init__(self, add_question, handle_diapo, handle_rec, toggle, handle_video):
- super(Websocket, self).__init__()
- self.start_server = websockets.serve(self.handle_input, '127.0.0.1', 5678)
- self.callbacks={
- "add_preg": add_question,
- "diapo": add_question,
- "startrec":handle_rec,
- "startrectrat":handle_rec,
- "stoprec":handle_rec,
- "toggle":toggle,
- "video":handle_video
- }
- print(type(self.callbacks))
- self.valid_data_types=["add_preg", "diapo", "startrec","startrectrat","stoprec","toggle","video"]
- #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?")
- @asyncio.coroutine
- def handle_input(self,websocket, path):
- while True:
- try:
- #data = await websocket.recv()
- data = yield from websocket.recv()
- try:
- data=json.loads(data)
- except Exception as e:
- print(e)
- print(data)
- print("No pude hacer loads")
- continue
- print(data)
- if not "type" in data:
- print("data!= type?")
- continue
- #add preg, diapo, start|stop rec, switch mode, add video
- if data["type"] in self.valid_data_types:
- print("{}".format(data))
- self.callbacks[data["type"]]()
- except websockets.exceptions.ConnectionClosed as c:
- print( "client dc'd")
- break
-
-
|