Socket.io在生产中不起作用

我已经尝试在localhost上的socket.io,它完美的作品。 但是,在生产中出现以下错误:

GET http://77.235.46.164:3000/socket.io/?EIO=3&transport=polling&t=1448754369321-21 net::ERR_CONNECTION_TIMED_OUT 

在服务器端,我有以下代码:

 var express = require('express'); var mysql = require('mysql'); app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); connection.connect(); server.listen(process.env.PORT || 3000); 

在客户端:

 var socket = io.connect('http://77.235.46.164:3000'); .... etcs 

我也启动节点服务器(我在EuroVPS有VPS帐户)。 我到处search,但我似乎没有find一个适合我的解决scheme。

它没有防火墙吗?

在一些受控networking中,防火墙可能会阻止80,443以外的其他networking端口和端口。

您可以自己创build一个HTTP服务器,而不是让Express框架为您创build一个HTTP服务器,这样您就可以重用您的HTTP服务器,以便保持相同的服务器实例。

你可以试试 :

 var express = require('express'); var app = express(); //Create your server var server = app.listen(3000); var io = require('socket.io')(server); //Then you can listen for connection io.on('connection', function(socket){ socket.emit('an event sent to all connected clients') //Awesome things })