Pregunta

Estoy buscando a tientas un poco con WebSockets, y fue bastante satisfecho con lo fácil que era conseguir un servidor en funcionamiento del tornado que hace conexiones básicas WebSocket. Nunca he usado Tornado antes de hoy, y aunque me gusta lo que he visto que hay algunas preguntas que tengo con respecto a su uso.

En primer lugar, estoy usando WebSockets para que pueda tener comunicaciones de baja sobrecarga entre dos o más máquinas cliente. (A los efectos de la conversación Digamos que es un cliente de chat) Obviamente me puedo conectar al servidor desde múltiples máquinas, y pueden todos los mensajes de inserción en el servidor y el servidor puede responder, que es grande! Pero eso no es demasiado mejor que sus peticiones AJAX estándar. Si tengo una conexión persistente quiero ser capaz de enviar datos a los clientes también. El escenario más simple posible es usuario 1 mensajes un mensaje al servidor y al recibirlo el servidor empuja inmediatamente a usuario 2.

Entonces, ¿cuál sería una buena manera de lograr eso? Por lo que puedo ver en Tornado no hay manera de comunicarse entre las conexiones que no sean de colocar el mensaje en un almacén de datos en alguna parte y que tengan todo el sondeo otras conexiones para la nueva información. Que me parece aunque terriblemente torpe, porque todo lo que realmente está haciendo en ese momento se está moviendo el proceso de sondeo desde el cliente al servidor.

Por supuesto, puede ser ladrando al árbol equivocado por completo aquí. Es ciertamente plausible que Tornado simplemente no es la herramienta adecuada para este trabajo, y si ese es el caso, yo estaría feliz de escuchar sugerencias de alternativas!

¿Fue útil?

Solución

Aquí está utilizando un servidor de chat tornado, WebSockets y Redis: https://gist.github.com/ Pelletier / 532.067 ( Actualización : enlace fijo, gracias @SamidhT)

Otros consejos

A pesar de la respuesta ya ha sido aceptada: El uso de un servicio diferente todavía parece muy ineficiente para mí. ¿Por qué no sólo tiene que ir con memoria + condicionales variables / semáforos compartidos? Parece como si tienes un problema entre consumidores y productores estándar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top