Socket.io在生产中不起作用

时间:2015-11-28 23:57:37

标签: javascript node.js express socket.io vps

我在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帐户)。 我到处搜索,但我似乎找不到适合我的解决方案。

2 个答案:

答案 0 :(得分:2)

您可以自己创建HTTP服务器,而不是让Express框架为您创建一个,这样您就可以重用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
})

答案 1 :(得分:2)

没有防火墙吗?

在某些受控网络中,防火墙可能会阻止websockets& 80,443以外的其他港口。