socket.io net :: ERR_CONNECTION_TIMED_OUT

时间:2015-02-09 00:47:05

标签: node.js express socket.io

我正在使用socket.io和unity进行测试。

在我的本地主机(我的电脑)确实走得很好,但现在我得到了我的主机,看看它是如何在线工作,我有以下问题:

在线网址应用:http://almightysystem.com.ar/UnityApps/UnityChatSocket.io/

我有这个循环错误:

GET http://almightysystem.com.ar:29011/socket.io/?EIO=3&transport=polling&t=1423454072758-3 net::ERR_CONNECTION_TIMED_OUT

server.js:

var express = require('express');
var port = process.env.PORT || 29011;

var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.use(express.static(__dirname + '/public'));

io.on('connection', function(socket){
    socket.on('chat message', function(message){
        io.emit('chat message', message);
    });
});

http.listen(port, function(){
    console.log('Express server listening on port ' + port);
});

client.js:

//SOCKET.IO
var socket = io.connect('http://almightysystem.com.ar:29011/');

socket.on('chat message', function(message){
    SendMessage ('ChatSystem', 'GetChatMessage', message);
    console.log("Mensaje recibido del Servidor hacia Unity: " + message);
});

function UnitySendMessage(message){
    socket.emit('chat message', message);
    console.log("Mensaje de Unity al Servidor: " + message);
}

有什么想法吗?

4 个答案:

答案 0 :(得分:0)

在您的服务器代码中,您应该使用server.listen(port, ...)而不是app.listen(port, ...),因为app.listen() creates a new http server并附加了您不需要的内容,因为您已经拥有了server io.connect('http://almightysystem.com.ar:29011/'); io.connect('http://almightysystem.com.ar/UnityApps:29011');)。

此外,在您的客户端代码中,您应该使用/UnityApps而不是path,因为socket.io服务器不知道在:29011上倾听(因为您&#39} ;即使您已将{{1}}部分移动到正确的位置,也不会将配置对象({{1}}设置)传递给socket.io server constructor)。

答案 1 :(得分:0)

我有同样的问题并使用

解决了它
var socket = io.connect();

而不是

var socket = io.connect('http://almightysystem.com.ar:29011/');

答案 2 :(得分:0)

我对这个问题有一个答案。

在您的客户代码中。

// SOCKET.IO

var socket = io.connect('http://almightysystem.com.ar:29011/');

socket.on('chat message', function(message){
    SendMessage ('ChatSystem', 'GetChatMessage', message);
    console.log('Mensaje recibido del Servidor hacia Unity: ' + message);
});

function UnitySendMessage(message){
    socket.emit('chat message', message);
    console.log('Mensaje de Unity al Servidor: ' + message);
}

connect函数中删除端口号。

var socket = io.connect('http://almightysystem.com.ar:29011/');

喜欢这个。

var socket = io.connect('http://almightysystem.com.ar');

答案 3 :(得分:0)

在您的客户端 const socket = io("http://almightysystem.com.ar:29011/", { transports: ["websocket"] }); 尝试此操作以指定您要使用 websockets