He tenido una muy buena experiencia con NodeJS y Socket.IO en los últimos 8 meses. El componente del lado del servidor ha sido muy estable para mí: puedo dejarlo funcionando con un volumen de mensajes muy alto y su memoria residente nunca realmente se mueve por encima de los 20 MB. Hasta ahora solo he podido dejarlo funcionando durante aproximadamente 4 semanas sin finalizar el servidor, pero eso fue solo porque necesitaba actualizar mi código de servidor.
Funciona sin problemas el navegador, utilizando HTML5 websockets o COMET como disponible. La elección del transporte debe ser invisible para la capa de aplicación. No me importa acerca de los navegadores antiguos (IE6)
proporciona una metáfora de publicación/suscripción con cargas útiles arbitrarias
Socket.IO es también una fantástica pieza de software. Está en desarrollo activo, y tiene una simple abstracción de estilo pub/sub incorporada usando la semántica de EventEmitter (NodeJS) de 'on' (suscribir) y 'emit' (publicar). También es muy transparente en el lado del cliente con respecto al transporte que se utiliza. Lo usé principalmente para el soporte directo de WebSocket, pero puede recurrir a sockets basados en Flash, xhr-polling y jsonp polling.
acceso de cliente de ambas javascript y sistemas del lado del servidor (es decir, en php/python/rubí) - esto es crítico
NodeJS es JavaScript, que se ejecuta en el motor V8. Tiene una tonelada de 3rd party modules que proporcionan buenas abstracciones, así como la interfaz con componentes externos, como bases de datos o colas de mensajes, entre muchas otras cosas. En lo que respecta a golpear el sistema con php/python/ruby, funcionaría como con golpear a cualquier otro servidor.Elija su método de comunicación (TCP/IP básico, o tal vez HTTP POST o GET, o incluso a través del sistema de archivos) y a NodeJS realmente no le importa quién proporciona los datos. Personalmente, he implementado un cliente C# que funciona muy bien.
permite a los clientes ver lo que otros clientes están conectados a un canal, es decir, la presencia
No no tiene ningún incorporado en la lógica 'presencia', aunque con el construido en el 'pub/sub 'lógica ya instalada en Socket.IO, todo lo que tendría que hacer es almacenar el estado en el servidor para que los nuevos clientes puedan recuperar los datos de presencia existentes. Implementé mi propio pub/sub básico en el servidor que conserva el estado, y todos juntos (incluido el código del servidor NodeJS y los staubs básicos de Socket.IO) eran solo 50 líneas de JavaScript (incluido el espacio en blanco).
control de acceso de grano fino a través de devoluciones de llamada a cualquier aplicación web (bueno tener)
No está seguro de lo que entendemos por 'control de acceso de grano fino a través de devoluciones de llamada a cualquier aplicación web (bueno tener) '. La metáfora de pub/sub evento/observador que tienen usa devoluciones de llamada, por lo que enlazar acciones específicas a eventos específicos.
Do auth?
No he tenido necesidad, todavía, de hacer ninguna autenticación para nuestros sistemas, por lo que no puedo hablar directamente con ella. Sin embargo, si navega por los módulos de NodeJS notará que hay muchos módulos de autenticación disponibles, incluidos LDAP y OAuth, sin mencionar el one module que dice hacer "OpenId, Google, OAuth, Twitter, LinkedIn, Yahoo, Readability, Dropbox, Justin". .tv, Vimeo, Tumblr, OAuth2, Facebook, GitHub, Instagram, Foursquare, Box.net, LDAP "
El código abierto sería bueno, al igual que los clientes de PHP y Python, pero por lo demás, esto parece ser lo que estoy buscando. ¡Gracias! – Leopd