Buenas.
Estoy haciendo a modo de aprendizaje un 'chat' (en Python 3.5.2) en el que utilizo hilos, websockets, sockets y 'asyncio'.
Para hacer la interfaz utilizo HTML y JS, que conecto a la consola mediante websockets. Estos son asíncronos, y los 'manejo' con un hilo.
Desde los websockets paso los datos a los sockets y estos se mandan al server.
[HTML + JS] <-> WebSockets <-> Sockets <-> Server
[Parte de websockets]
El problema es este:
import asyncio
import threading
import websockets
async def server(websocket, path):
threading.Thread(target=sendData, args=(websocket, path)).start()
threading.Thread(target=getData, args=(websocket, path)).start()
# await getData(websocket, path)
# await sendData(websocket, path)
async def getData(websocket, path):
await print(websocket.recv())
await asyncio.sleep(0.1)
def sendData(websocket, path):
while True:
websocket.send("data")
asyncio.sleep(0.5)
start_server = websockets.serve(server, 'localhost', 7979)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Este código me da error al pasarle los argumentos en el hilo en el que invoco a getData().
#El sendData() esta sin el async para comprobar que falla
Son los argumentos requeridos, pero me dice que no se esperan y que espera dos argumentos :/
Creo que es debido a la forma de pasarle los argumentos al async desde el hilo.
El problema es que no se como pasárselos bien.
Podrian explicarme como solucionar esto?
Gracias.
Postdata: siento si este post esta mal colocado y si tengo algun error de novato, ya que lo soy :]