Socket.io 2.0.3 on Openshift 2 ERR_CONNECTION_TIMED_OUT



我想在带有节点.js的 Openshift 2 上使用 socket.io 2.0.3(最新版本(,当我在本地运行时,套接字工作得很好,但在 openshift 中我收到此错误:

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

这就是代码:

服务器

应用.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
});
}); 
});

客户

索引.html

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

工厂.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);
}
};
}]);

我不知道问题,知道吗?

根据 v2 文档,您应该通过端口 8000 访问 WebSockets

相关内容

最新更新