Problema con sockets y demas

Iniciado por Pytness, Septiembre 06, 2016, 07:46:12 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

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:
Código: php

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 :]
Pytness