Если вы собираетесь писать чат, то желательно все производить через сервер.
Пример смотрите ниже:
users = []
async def send(ws, message):
await ws.send(json.dumps(message))
async def handler(websocket, _):
#Вызывается при присоединении пользователя
user = websocket
users.append(user)
# Ожидает сообщения от клиента
try:
async for message in websocket:
# Возврат сообщения
await send(user, {"type": "pong"})
except:
pass
if __name__ == '__main__':
print("Sent!")
if config.SSL_KEY:
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
ssl_context.load_cert_chain(config.SSL_CHAIN, config.SSL_KEY)
start_server = websockets.serve(handler, config.IP, config.PORT, ssl=ssl_context)
else:
start_server = websockets.serve(handler, config.IP, config.PORT)
asndf = asyncio.get_event_loop()
asndf.run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Это не создает дополнительной нагрузки на сервер