Openshift 2上的Socket.io 2.0.3 ERR_CONNECTION_TIMED_OUT

时间:2017-08-14 13:14:42

标签: javascript node.js socket.io openshift

我想在Openshift 2上使用socket.io 2.0.3和node.js(持续版本),我不能,当我在本地运行时,套接字工作完美,但在openshift中我得到这个错误:< / p>

GET http://tfg-eliasmarnev.rhcloud.com:3000/socket.io/?EIO=3&transport=polling&t=LtWrbEF net::ERR_CONNECTION_TIMED_OUT

这就是代码:

服务器

app.js

var fs = require('fs');
var express = require('express');
var app = express();
var server = require('http').Server(app);
var bodyParser = require ('body-parser');
var jwt = require('jsonwebtoken'); 


//App configuration
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1';
var server_port = process.env.OPENSHIFT_NODEJS_PORT || 3000;

//Websockets con socket.io
var io = require('socket.io')(server);

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

//Tanto el puerto como la ip son necesarios para OpenShift, 
//de lo contrario intenta enlazar el servidor con la IP 0.0.0.0 y falla
server.listen(server_port, server_ip_address, function () {
      console.log( "APP Listening on: " + server_ip_address + ":" + server_port )
    }); 

// Permitir que algunos archivos sean enviados a través de HTTP
app.use(express.static(__dirname + '/')); 

// Serve GET on http://domain/
app.get('/', function (req, res) {
  res.sendFile(__dirname + '/index.html');
});

//Iniciamos la conexión.
io.on('connection', function (socket) { // Conexiones entrantes de clientes

    console.log('Usuario conectado');

    //Permanecemos a la escucha del evento coordenada
    socket.on('coordenada', function (data) { // listen to the event

        io.emit('notificacion', { // emit an event to all connected sockets
            Nombre: data.name
        });
    }); 
});

客户端

的index.html

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script> 

factory.js

app.factory('socket', ['$rootScope', function($rootScope) {

   //var socket = io.connect('http://tfg-eliasmarnev.rhcloud.com:3000/', {'forceNew':true });   
   //var socket = io.connect(); 
     var socket = io.connect('http://tfg-eliasmarnev.rhcloud.com:3000');

  return {
    on: function(eventName, callback){
      socket.on(eventName, callback);
    },
    emit: function(eventName, data) {
      socket.emit(eventName, data);
    }
  };
}]);

我不知道这个问题,任何想法?

1 个答案:

答案 0 :(得分:0)

您应该根据v2 documentation

通过端口8000访问WebSockets