我正在使用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);
}
有什么想法吗?
答案 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