Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import asyncio, websockets, logging, os, binascii
- logging.basicConfig()
- SERVER_IP = '192.168.1.2';
- SERVER_PORT = 4441
- class WebSocketsServer:
- ip = None
- port = None
- clients = {}
- def __init__(self, ip, port):
- self.ip = ip
- self.port = port
- async def start():
- await websockets.serve(self.listen, self.ip, self.port)
- # end __init__
- async def listen(self, websocket, path):
- id = self.generate_id(16)
- self.clients[id] = websocket
- await self.handle_client(id, websocket)
- # end listen
- async def handle_client(self, id, websocket):
- print(id + ' connected')
- while True:
- try:
- data = await websocket.recv()
- print(id + ': ' + data)
- except Exception as e:
- print(id + ' disconnected')
- await websocket.close()
- return
- # end handle_client
- def generate_id(self, len):
- return binascii.b2a_hex(os.urandom(int(len / 2))).decode(encoding='utf-8')
- # end generate_id
- server = WebSocketsServer(SERVER_IP, SERVER_PORT)
- asyncio.get_event_loop().run_until_complete(server.start);
- asyncio.get_event_loop().run_forever()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement