Advertisement
Guest User

Untitled

a guest
Apr 1st, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.47 KB | None | 0 0
  1. import asyncio, websockets, logging, os, binascii
  2.  
  3. logging.basicConfig()
  4.  
  5. SERVER_IP = '192.168.1.2';
  6. SERVER_PORT = 4441
  7.  
  8. class WebSocketsServer:
  9.  
  10.         ip = None
  11.         port = None
  12.         clients = {}
  13.  
  14.         def __init__(self, ip, port):
  15.                 self.ip = ip
  16.                 self.port = port
  17.  
  18.         async def start():
  19.                 await websockets.serve(self.listen, self.ip, self.port)
  20.  
  21.         # end __init__
  22.  
  23.         async def listen(self, websocket, path):
  24.                 id = self.generate_id(16)
  25.                 self.clients[id] = websocket
  26.  
  27.                 await self.handle_client(id, websocket)
  28.  
  29.         # end listen
  30.  
  31.         async def handle_client(self, id, websocket):
  32.                 print(id + ' connected')
  33.  
  34.                 while True:
  35.                         try:
  36.                                 data = await websocket.recv()
  37.                                 print(id + ': ' + data)
  38.                         except Exception as e:
  39.                                 print(id + ' disconnected')
  40.                                 await websocket.close()
  41.                                 return
  42.  
  43.         # end handle_client
  44.  
  45.         def generate_id(self, len):
  46.                 return binascii.b2a_hex(os.urandom(int(len / 2))).decode(encoding='utf-8')
  47.  
  48.         # end generate_id
  49.  
  50. server = WebSocketsServer(SERVER_IP, SERVER_PORT)
  51.  
  52. asyncio.get_event_loop().run_until_complete(server.start);
  53. asyncio.get_event_loop().run_forever()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement