Consulta socket y rest

14 views
Skip to first unread message

Emiliano Gonzalez

unread,
Feb 18, 2015, 1:55:21 PM2/18/15
to py...@googlegroups.com
Bueno, como verán soy nuevo. Hace poco me puse a meter mano en python con cosas medias básicas. 

Estoy intentando hacer una aplicación que tenga/ofrezca dos interfaces de comunicación, una Rest y otra por Socket. La idea es ofrecer una interfaz de comunicación hacia el exterior mediante Rest y cuando se consuma un recurso, se envíe una acción por el socket. En el socket van a haber clientes conectados y cuando se un recurso por Rest se va a enviar un mensaje/acción a un cliente especifico conectado en el socket. Hay una lógica y comunicación entre las dos interfaces, utilizan datos en común.
Como dije anteriormente, soy nuevo en el lenguaje y no tengo mucha idea de lo que hago y como lo hago. Estaba usando la librería socket que trae python y para la interfaz rest, flask-rest. Lo que no he podido lograr es iniciar los "dos procesos/servicios" en simultaneo desde el mismo modulo para así poder utilizar "información/datos" en común en la misma ejecución. Cuando inicio flask (creo que realizar un reload o algo parecido) me tranca la ejecución del socket.

No se si me explico de la mejor manera, en caso de NO, haganmelo saber.

He estado leyendo y probando con threads, pero no lo he logrado hacer funcionar como espero.
Espero que me puedan ayudar/guiar para lograr mi objetivo.
Slds.-

Alejandro Vartabedian

unread,
Feb 18, 2015, 2:34:42 PM2/18/15
to py...@googlegroups.com

Hola Emiliano, yo también soy nuevo, pero pensando en tu problema, más allá del lenguaje,  viendo la arquitectura del sistema,  creo que te puede ser más sencillo tener 2 servicios por separado.
Uno con el socket server y otro con  el servicio rest, cuando se atiende el request rest podés hacer que desde el controlador/vista flask te conectes al socket server y hagas el broadcast del mensaje/señal a los que estén conectados,  tipo tutorial de socket con sala de chat.
No veo necesidad de que tengas que tener un all-in-one server, cada cosa con lo suyo.
Solo pienso en voz alta, por lo general lo complejo es como lo pensamos, no lo que hace.
Saludos.

--
Has recibido este mensaje porque estás suscrito al grupo "PyUy" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyuy+uns...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a py...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/pyuy.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Emiliano Gonzalez

unread,
Feb 18, 2015, 3:15:32 PM2/18/15
to py...@googlegroups.com
Gracias por tu respuesta Varta.
Si, esa la pensé, es la alternativa que manejo, para realizarlo así tengo que persistir la información y consumirla en los dos servicios, la idea era utilizar la misma información (en memoria) sin persistir. Se que hoy en día hay muchísimas herramientas para compartir información en memoria y demás, pero buscaba como vos decís, hacer todo en all-in-one.

Slds.-

Alejandro Vartabedian

unread,
Feb 18, 2015, 4:34:49 PM2/18/15
to py...@googlegroups.com

Bueno, suerte con el engendro. Debe ser algo chico o un experimento acotado, sino vas a tener problemas para manejar volumen, controlar la demanda y los recursos.
Saludos

Luar Roji

unread,
Feb 18, 2015, 5:59:48 PM2/18/15
to py...@googlegroups.com
Hola!

Lo que queres hacer no es tan loco. Lo que necesitas es un framework asincronico como por ejemplo twisted, o gevent, o tornado.

Con eso creo que lo que queres hacer lo haces en un toque.

Abrazo!

Emiliano Gonzalez

unread,
Feb 18, 2015, 7:02:21 PM2/18/15
to py...@googlegroups.com
Si, está etapa si, es algo muy reducido, casi que un piloto de prueba a ver si todas las partes marchan como se esperan para después pasarlo a algo a mayor escala. Me puse a hacerlo en python por que es el lenguaje que usan donde trabajo y un lenguaje que se está usando mucho, pero no por que sepa jaja. Es un test personal y por eso quiero probarlo antes de llevarlo a otro contexto.

Gracias,
Slds.-

Emiliano Gonzalez

unread,
Feb 18, 2015, 7:03:12 PM2/18/15
to py...@googlegroups.com, lu...@roji.net
Hola Luar, muchas gracias por tus recomendaciones, mañana ya entraré en campaña para ver si logro hacer funcionar esta pequeña prueba.

Slds.-
Reply all
Reply to author
Forward
0 new messages