Suite aux retours de ConverseJS, la possibilité d'utiliser les websockets
a été mise en place.
En effet, via ce protocole de communication, le navigateur se comporte correctement et n'engendre pas de coupure de communication.
Cela étant, les prochaines versions de ConverseJS permettront en principe de mieux fonctionner avec l'ancien protocole utilisé (correction https://github.com/conversejs/converse.js/commit/007b4bce2ffe169c0c5cd276dfc4dba540a96001).
Pour utiliser les websockets
il faut renseigner le nouveau paramètre chat.xmpp.wsBind
dans $SILVERPEAS_HOME/properties/org/silverpeas/chat/settings/chat.properties. Ce dernier doit contenir l'URL relative du service websocket.
Pour les environnement avec un reverse proxy
, il faut ajouter dans la configuration une routine ProxyPath
pour rediriger les requêtes websockets.
Bien sûr, il faut que le service websocket sur le serveur XMPP soit activé. Sous ejabberd : https://docs.ejabberd.im/admin/configuration/listen/#ejabberd-http-ws
Un exemple de configuration
Extrait fichier chat.properties
chat.servers.xmpp = https://server.silverpeas.org/im
chat.xmpp.wsBind = /ws/
Extrait configuration apache
ProxyPass /im/ws ws://serveur.messagerie.org:5280/ws
ProxyPass /im http://serveur.messagerie.org:5280
ProxyPassReverse /im http://serveur.messagerie.org:5280
Extrait configuration ejabberd
port: 5280
ip: "::"
module: ejabberd_http
request_handlers:
"/admin": ejabberd_web_admin
"/api": mod_http_api
"/bosh": mod_bosh
"/ws": ejabberd_http_ws
Commit : https://github.com/Silverpeas/Silverpeas-Core/commit/fd47e3c56467698f60ac82d33afa2c04c7d246b7