2017-06-09 5 views
0

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/).

Répondre

0

Si votre serveur écoute sur le port process.env.PORT ou 5280, le client doit se connecter au port process.env.PORT ou port 5280.

"wss://votebot-web-app-bosh.herokuapp.com/http-bind/", 

WSS = port 443, sauf si vous spécifiez un autre.

+0

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. –