J'ai mis en place un simple serveur BOSH et WebSocket en utilisant node-xmpp-bosh
comme ceci:Estabilishing une connexion WebSocket avec Strophe.js
const nxb = require("node-xmpp-bosh");
const PORT = process.env.PORT || 5280;
const server_options = {
port: PORT,
host: '0.0.0.0',
path: '/http-bind/',
logging: 'INFO'
};
const bosh_server = nxb.start_bosh(server_options);
const ws_server = nxb.start_websocket(bosh_server, server_options);
J'ai déployé ce serveur Heroku et maintenant je suis en train de créer un Connexion XMPP avec Strophe en l'utilisant.
var conn = new Strophe.Connection(
"wss://votebot-web-app-bosh.herokuapp.com/http-bind/",
{protocol: "wss"}
);
conn.connect(...);
Si j'ouvre les outils de dev du navigateur, je peux voir, il y a une requête GET à wss://votebot-web-app-bosh.herokuapp.com/http-bind/
avec le code d'état HTTP 101 Switching Protocols
, mais il n'y a pas de réponse.
En effet, les journaux montrent Heroku cette erreur:
[2017-06-09 20:10:17.359] [WARN] [xmpp-proxy-connector.js:Object.stanza:138] - WEBSOCKET d99abd10-683a-485c-a1b8-21f960418523 bosh-stanza - stream not available
Je suis coincé ici, donc je me demandais si quelqu'un qui a déjà utilisé XMPP sur WebSockets pourrait me donner toute suggestion. Merci d'avance.
Modifier: Au cas où cela est important, j'ai oublié d'ajouter que je peux me connecter avec succès au service BOSH dans la même URL (https://votebot-web-app-bosh.herokuapp.com/http-bind/
).
Oui, j'ai aussi essayé de spécifier le port dans Strophe. Le problème est que Heroku ne vous donne pas de port fixe; il vous en donne un différent chaque fois que vous lancez l'application. J'ai ajouté une ligne au bas du serveur bosh/ws pour que je sache sur quel port écouter, afin de l'ajouter à l'URL de connexion de Strophe ('' "wss: // votebot-web-app-bosh .herokuapp.com: 53721/http-bind/"' '). Cependant, je viens d'obtenir une erreur "impossible d'établir une connexion avec le serveur" lorsque j'essaie de me connecter. Merci d'avoir répondu. –