La connexion WebSocket à l'application OpenShift a échoué

J'ai créé une application avec NodeJS et j'utilise le module ws. Si je teste l'application dans localhost, cela fonctionne et il n'y a pas de problème pour connecter des websockets. Maintenant, j'ai téléchargé l'application sur Openshift et lorsque j'essaie d'accéder à partir du client, il retourne, il n'est pas possible d'établir une connexion à la connexion Web.

Si je fais une queue dans le mastic sur mon application, j'ai ce message: DEBUG: ce type de réponse NE DOIT PAS avoir de corps. Ignorer les données passées à la fin ().

Le code que j'ai dans le serveur est:

#!/bin/env node //Openshift variables var ipaddress = process.env.OPENSHIFT_NODEJS_IP || "192.168.69.42"; var port = process.env.OPENSHIFT_NODEJS_PORT || 8080; //NodeJS require modules var Enum = require('enum'); var WebSocketServer = require('ws').Server wss = new WebSocketServer({host:ipaddress, port:port}); var fs = require('fs'); wss.on('connection', function(ws) { console.log((new Date()) + ' Connection from origin: ' + ws._socket.remoteAddress); }); console.log((new Date()) + " Server is listening on: " + ipaddress + ':' port); 

Et dans le client:

 var ws = new WebSocket("ws://192.168.69.42:8080/"); ws.onopen = function() { console.log("Connected."); ws.send("This is the client speaking."); }; 

Pour toutes les connexions WebSocket sur OpenShift, vous devez utiliser le port 8000 (pour les sessions sécurisées, il serait 8443 ). Ainsi, votre exemple de serveur fonctionne bien (je les exécute après avoir supprimé la ligne inutile var Enum = require('enum'); vous suffit de durcir le port sur le client à 8000 :

 var ws = new WebSocket("ws://YourApp-YourName.rhcloud.com:8000"); ws.onopen = function(){ console.log('opened') } 

Plus d'informations ici .

Voici un exemple sur github qui fonctionne que vous pouvez vérifier: https://github.com/developercorey/openshift-nodejs-http-and-websocket-example