[pyar] [DJANGO] SocketIO Client in django

Pedro Pezzarini jose2190 en gmail.com
Lun Dic 28 11:06:27 ART 2015


Gracias por responder Carlos, en un principio el tema no me pareció trivial
pero todo tiende a que resulte ser así.
Estuve intentando varias cosas y pude conectarme al socket desde django sin
problemas (lo tiro a celery y que envíe los mensajes), el tema resulta ser
la interrupción del loop de django para aceptar requests.

Pensé en utilizar redis o amqp para utilizar de pasarela, y hacerlo
bidireccional. Pero una vez más estoy doblando demasiado la vara hacia un
engendro que solo funcionaría para mi caso.

Estuve leyendo django-websocket-request y tiene la limitante que no puede
autogenerar mensajes mediante eventos del lado del servidor, y otra vez cae
el comunicación de una sola vía.

Estoy considerando seguir exactamente como comenzaste el email; Hacer una
pasarela que pueda comunicarse con django mediante requests normales y
silvestres, y que esta pasarela se conecte contra el servidor. Algo como
colocar un sails.js o deployd entre django y el servidor con socketio.


Bueno, desde ya muchas gracias Carlos Matías por el tiempo que dedicaste a
este mensaje.

Saludos y buen lunes!



2015-12-28 9:24 GMT-03:00 Carlos Matías <cmdelatorre en gmail.com>:

> Estimado Pedro, me parece que lo que vas a tener que hacer es tener un
> servidor real-time en paralelo al Django. Desde ahí podrías acceder a la DB
> y contestar los pedidos asíncronos
>
>
> Según entiendo, para eso se usan Twisted (https://twistedmatrix.com/trac/)
> o Tornado (http://www.tornadoweb.org/en/stable/).
>
> En algún momento quisimos pavimentar ese camino con
> http://telegraphy.readthedocs.org/ pero ahora quedó desactualizado. Igual
> te puede servir como referencia.
> Fijate que la idea a futuro es usar Crossbar (http://crossbar.io/) que
> también te puede servir.
>
>
> Saludos
>
>
>> ---------- Forwarded message ----------
>> From: Pedro Pezzarini <jose2190 en gmail.com>
>> To: Python Argentina <pyar en python.org.ar>
>> Cc:
>> Date: Sun, 27 Dec 2015 16:31:15 -0300
>> Subject: [pyar] [DJANGO] SocketIO Client in django
>> ---- Contexto
>> Hola querida comunidad, desde hace tiempo vengo desarrollando proyectos
>> en Django y hasta ahora no he tenido grandes problemas.
>> Pero ahora surgió la necesidad de interconectar en tiempo real multiples
>> instancias de los sistemas corriendo que se encuentran en diferentes hosts.
>>
>> Mi idea es utilizar socketio y conectar a cada sistema para obtener las
>> estadísticas en tiempo real, es decir, conectar a la ejecución de django
>> como cliente al server.
>>
>> ---- Problema
>> La pregunta es, como hacer que el socket quede escuchando sin que se
>> bloquee la ejecucion de django?
>>
>> Obviamente si alguien tiene una mejor forma de resolver este problema,
>> soy todo ojos para leerlo.
>>
>> Desde ya gracias por el tiempo que emplean en responder.
>> Saludos, Pedro
>>
>>
>>
>> Esto es lo que estoy intentando hacer sin exito con los events del socket:
>> ---- Codigo
>>
>> from socketIO_client import SocketIO, LoggingNamespace
>> from redis import Redis
>> from rq import Queue
>> from threading import Thread
>>
>> class DjangoLive(object):
>> """docstring for DjangoLive"""
>> def __init__(self, host, port):
>> super(DjangoLive, self).__init__()
>> self.host = host
>> self.port = port
>> self.connection = None
>> self.thread = None
>>
>> def Connect(self):
>> self.connection = SocketIO(self.host, self.port, LoggingNamespace)
>> self.connection.on('hi', self.testResponse)
>> self.connection.emit('hi', 'hello')
>> self.thread = Thread(target = self.Wait)
>> self.thread.start()
>> #self.thread.join()
>>
>> def Wait(self):
>> self.connection.wait()
>>
>> def testResponse(self, *args):
>> print('testResponse', args)
>>
>> liveconnection = DjangoLive('localhost', 8080)
>> liveconnection.Connect()
>>
>
> --
> Carlos Matías
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151228/69dfdf73/attachment-0001.html>


Más información sobre la lista de distribución pyar