¿Hay un WebSockets biblioteca de código abierto (JavaScript) XMPP? [cerrado]

StackOverflow https://stackoverflow.com/questions/1850162

  •  13-09-2019
  •  | 
  •  

Pregunta

¿Alguien ha escrito una biblioteca XMPP de código abierto que utiliza WebSockets y está destinado a ser ejecutado por un navegador?

¿Fue útil?

Solución

Aún no tenemos un estándar para XMPP sobre WebSockets que el los servidores se pueden poner en práctica, que serán necesarios antes de que el lado del cliente se pueden abordar de manera adecuada.

El primer paso es terminar la estandarización WebSocket. Parece que esto puede suceder en un grupo de trabajo IETF hybi, que en el momento de la escritura aún no ha sido aprobado por el IESG. Hubo un hybi Birds-of-a-Feather (BOF) en la reunión del IETF Hiroshima hace un par de semanas (ver el noreferrer materiales de la reunión ), que fue bastante bien.

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

Editar: Jack Moffitt ha escrito un Proyecto de Internet con un primer pase a un protocolo que se puede utilizar. ADVERTENCIA . Esto sigue siendo probable que cambie drásticamente. Sólo ponerlo en práctica si usted está dispuesto a rasgar completamente después. ADVERTENCIA .

Otros consejos

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

1. Utilice Kaazing.

Ellos son compatibles con ella. Es de código abierto, pero tienen algún tipo de de doble licencia , así que es mejor y comprueba si se puede utilizar para su proyecto o no.

2. Combinar js.io y APE (motor de inserción del Ajax)

APE es un marco cometa, pero recientemente comenzó a apoyar WebSockets. En su página web (sección "APE como proxy"), dicen que puede funcionar js.io bibliotecas que incluye xmpp.js, por lo que la combinación de ellos pueden trabajar.

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. Consulte con el equipo Strophe para apoyar WebSocket.

Strophe hace XMPP sobre BOSH (bidireccional corrientes a través de HTTP síncrona), pero no es una discusión sobre el apoyo WebSockets , también.

Jack Moffitt (el desarrollador del núcleo y el autor del libro mencionado anteriormente) parece interesado en WebSockets, pero tenemos que proporcionar más fuerte razonamiento sobre por qué tienen que apoyar WebSocket sobre BOSH. Si usted tiene buenas respuestas, por favor unirse a la banda de rodadura.

Sólo traté su XMPP, bosh, estrofa echobot ejemplo , que funcionó muy bien. También puede ser que desee probarlo para ver si se ajusta a sus necesidades o no.

Para # 2 y # 3, que dicen que ambos XMPP apoyo y websockets, pero no está seguro si trabajan juntos.

¿Qué tipo de aplicación que se está pensando en usar XMPP y WebSockets para?

El abajo son sugerencias para alternativas.

  • Si desea que la presencia, chat, sala de chat funcionalidad equivalente, que podría hacer Gadget de onda o un robot, a continuación, exponer al exterior a través de Wave API de inserción (vínculo roto, en las explotaciones históricas). Wave es en realidad construida en la cima de XMPP.
  • Si simplemente está buscando capacidad de mensajería de latencia muy baja, usted podría tratar AMQP .
  • Si usted está buscando mucho más simple transmisión de mensajes, sólo puede tubo en el archivo de entrada / salida UNIX como he demostrado aquí .

Tengo la mayor parte de la información anterior cuando escribí esta entrada de blog . Si marca el momento sección de comentarios en cuando, voy a publicar la actualización una vez que encuentre otras soluciones.

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

XMPP profesional con JavaScript y jQuery alt text http://ecx.images-amazon.com/images/ E / 51B7VAHw8OL._SL500_AA240_.jpg

Pero estoy asumiendo que no desea esperar a que el libro. Así que cuidado presentación de Jack Moffitt de JSConf . Lo vi esta mañana. (Jack Moffitt es el autor del libro vinculado al anterior).

La biblioteca se trate (JavaScript y C implementaciones) es Strophe .

Esta es un área muy fructífera de la exploración, pero muy crudo. Ya veremos más pronto. WebSockets vienen con HTML5, ¿verdad?

JSJaC implementos XMPP durante websockets . Se sabe que trabajar con varias implementaciones de back-end:

  • nodo-xmpp-bosh - es compatible con RFC6455 y funciona sin problemas desde 0.6.1, también transparente utiliza STARTTLS si es necesario
  • WXG - compatible con RFC6455 y las obras sin ningún problema, pero no puede conectarse a los servidores que requieren STARTTLS (WXG original tiene alguna temas, que fueron corregidos por Gordin).
  • ejabberd-websockets - no lo hace 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 apoyo RFC6455 para de ahí que no funciona
  • Apache Vysper - hace es compatible con RFC6455, por tanto, no funciona
  • Tigase - conoce ningún trabajo sobre WebSocket apoyo
  • MongooseIM - un tenedor de ejabberd con soporte para más de XMPP WebSockets.

No estoy seguro de JS en el lado del navegador puede manejar el protocolo WebSocket solos, ya que en su mayoría se basan en la API de navegador. Pocos soporte de los navegadores todavía WebSocket: Cromo, Safari5, tal vez Firefox4. Hay muchas soluciones a base de flash / AS3 (entonces sus js comunica con el código de flash) el la principal limitación es que el flash no soporta conexión segura (muy malo).

BWT, se puede comprobar este implem WebSocket que proporcionan código abierto de Java lib cliente WebSocket y parece para hacer frente a las cosas XMPP y si examina los repositorios que puede encontrar aplicación básica AS3 WebSocket.

No estoy seguro de por qué está haciendo específicamente para una solución WebSocket porque los servidores XMPP tendrían que soportar esta primera.

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

Estos ejemplos se toman de la href="http://xmpp.org/software/libraries.shtml" rel="nofollow noreferrer"> XMPP Website

scroll top