2009-12-04 12 views

Respuesta

18

Todavía no tenemos un estándar para XMPP sobre WebSockets que los servidores puedan implementar, que será necesario antes de que el lado del cliente pueda abordarse adecuadamente.

El primer paso es finalizar la estandarización de WebSocket. Parece que esto puede suceder en un grupo de trabajo IETF HyBi, que en el momento de la redacción aún no ha sido aprobado por el IESG. Hubo un HyBi Birds-of-a-Feather (BoF) en la reunión IETF de Hiroshima hace un par de semanas (ver meeting materials), que fue bastante bien.

Después de WebSockets tiene una referencia estable, y parece estar estableciéndose, la XSF creará un XEP que se une a XMPP WebSockets, presumiblemente con una estrofa por cuadro WebSocket.

Editar: Jack Moffitt ha escrito un IETF Internet-Draft con una primera pasada en un protocolo que se puede utilizar. ADVERTENCIA. Es probable que esto cambie drásticamente. Solo impleméntalo si estás dispuesto a arrancarlo completamente más tarde. ADVERTENCIA.

3

Hay un libro muy pronto que cubre este tema ...

Professional XMPP with JavaScript and jQuery alt text http://ecx.images-amazon.com/images/I/51B7VAHw8OL._SL500_AA240_.jpg

Pero estoy asumiendo que no desea esperar a que el libro. Así que mira the Jack Moffitt's presentation from JSConf. Lo vi esta mañana. (Jack Moffitt es el autor del libro vinculado anteriormente)

La biblioteca involucrada (implementaciones de JavaScript y C) es Strophe.

Esta es un área de exploración muy fructífera, pero muy cruda. Veremos más pronto. Los WebSockets vienen con HTML5, ¿verdad?

+0

De hecho, los WebSockets son parte de HTML5; Google Chrome los implementó –

24

Existen múltiples soluciones (ninguno de ellos es perfecto)

1. Uso Kaazing.

Ya lo admiten. Es de código abierto, pero tienen algún tipo de dual license, así que es mejor verificar si puedes usarlo para tu proyecto o no.

2. Combinar js.io y APE (Ajax empuje del motor)

APE es un marco cometa, pero recientemente comenzó a apoyar WebSockets. En su sitio web (sección "APE como proxy"), dicen que puede ejecutar bibliotecas js.io que incluyen xmpp.js, por lo que puede funcionar combinarlas.

3.Utilice Caucho

Es un marco basado en Java similar a la APE que proporciona una solución Comet tienda de una parada, y parece que soportar tanto XMPP y WebSockets

4 Pida al equipo de Strophe que admita WebSocket.

Strophe hace XMPP sobre BOSH (secuencias bidireccionales sobre HTTP síncrono), pero también está a discussion about supporting WebSockets.

Jack Moffitt (el desarrollador principal y el autor del libro mencionado anteriormente) parece interesado en WebSockets, pero tenemos que ofrecer un razonamiento más sólido acerca de por qué necesitan soportar WebSocket sobre BOSH. Si tiene buenas respuestas, únase a la banda de rodadura.

Acabo de probar su xmpp,bosh,strophe echobot example, que funcionó muy bien. También es posible que desee probarlo para ver si se ajusta a sus necesidades o no.

Para # 2 y # 3, dicen que ambos admiten xmpp y websockets, pero no están seguros si funcionan juntos.

¿Qué tipo de aplicación estás pensando utilizar con XMPP & WebSockets for?

Las siguientes son sugerencias de alternativas.

  • Si desea la presencia, chat, sala de chat funcionalidad equivalente, se puede hacer Gadget de onda o un robot, a continuación, exponer al exterior a través de Wave Embed API (vínculo roto, en las explotaciones históricas). Wave está construido sobre XMPP.
  • Si simplemente busca una capacidad de mensajes de latencia muy baja, puede .
  • Si está buscando una transmisión de mensajes mucho más simple, puede simplemente pipe in/out unix file as I demonstrated here.

Obtuve la mayoría de la información anterior cuando escribí this blog post. Si revisa la sección de comentarios de vez en cuando, publicaré la actualización una vez que encuentre otras soluciones.

+1

> ¿Para qué tipo de aplicación estás pensando usar XMPP y WebSockets? No tenía necesariamente nada específico en mente; en general, por supuesto, XMPP sobre WebSockets proporcionaría un marco y protocolo para aplicaciones web reales basadas en eventos, mejorando en gran medida la experiencia del usuario, por ej.: * correo electrónico basado en web * basado en la web de colaboración * sincronización de datos en tiempo real actualizaciones * en tiempo real * navegador para la comunicación navegador La combinación de estas dos tecnologías, así como de gran alcance JavaScript del lado cliente motores, parece abrir un montón de posibilidades con las aplicaciones web modernas. –

+1

Strophe ahora admite websockets. Tengo la opción de usar websocket o BOSH para la conexión. – Robin

0

No estoy seguro de por qué está solicitando específicamente una solución WebSocket porque los servidores XMPP tendrían que soportar esto primero.

Sin embargo, hay varias bibliotecas XMPP JavaScript disponibles (por lo que yo veo todos ellos utilizan el método BOSH):

Estos ejemplos se toman de la XMPP Website que enumera implementaciones de código abierto del protocolo XMPP.

+0

Los enlaces generalmente no son aceptables como respuestas. Formule una respuesta específica a la pregunta con sus propias palabras y use el enlace como referencia. Mencióname después de la edición, así que puedo quitar mi downvote. – markus

+1

@markus: gracias por los comentarios. Arreglé la respuesta. – MKroehnert

+0

La pregunta es preguntar específicamente por las bibliotecas JavaScript XMPP que tienen soporte para WebSockets, no BOSH. –

0

No estoy seguro de que JS en el lado del navegador pueda manejar solo el protocolo de websocket ya que depende principalmente de la API del navegador. Pocos websocket de soporte de navegador todavía: Chrome, Safari5, tal vez Firefox4. Hay muchas soluciones basadas en flash/as3 (entonces su js se comunica con el código de flash) la principal limitación es que el flash no admite una conexión segura (muy mal).

BWT, puede marcar this websocket implem que proporcionan opensource Java websocket client lib y parece tratar con material xmpp y si navega por los repositorios puede encontrar la implementación básica de as3 websocket.

3

JSJaC implementa XMPP Over Websockets. Se sabe que trabajar con varias implementaciones de back-end:

  • nodo en XMPP-bosh - compatible con RFC6455 y funciona sin problemas desde 0.6.1, también se utiliza de forma transparente STARTTLS si es necesario
  • WXG - compatible con RFC6455 y funciona sin problemas, pero no se puede conectar a los servidores que requieren STARTTLS (wxg original tiene algunos problemas , que fueron corregidos por Gordin).
  • ejabberd-websockets - no RFC6455 apoyo por lo que no funciona, adaptándolo a apoyar RFC6455 debería ser bastante fácil para cualquier persona saber Erlang (algunos trabajos en curso se puede encontrar en GitHub)
  • Openfire - plug-in oficial está disponible, pero carece de soporte para RFC6455 por lo que no funciona
  • Apache Vysper - Qué es compatible con RFC6455, por tanto, no funciona
  • Tigase - el trabajo no se conocen en WebSocket apoyo
  • MongooseIM - una horquilla de ejabberd con soporte para XMPP sobre Websockets.
Cuestiones relacionadas