在生产中无法连接到套接字io

生产中无法连接到socket.io。 它在我的开发服务器工作正常,但我没有得到在生产控制台中的“websocket用户连接”消息,我的热图没有填充testing数据。 我在浏览器jscript控制台中得到net :: ERR_CONNECTION_TIMED_OUT。

从服务器:

io.origins('http://example.com/path:8080') app.get('/somepath', function (req, res, next) { // code here io.emit('update', data) console.log('update has been emitted') // this prints and I see the data object in the console res.end("OK") }) io.on('connection', function (socket) { console.log('websocket user connected') }); 

从angular度控制器:

 $http.get('http://example.com/somepath?'+str) // hits somepath with test data in query string 'str' 

从/path中的脚本:

 var socket = io('http://example.com:8080'); 

而且我还在页面/path中包含了socket.io的cdn

 <script src="https://cdn.socket.io/socket.io-1.3.2.js"></script> 

问题是我不得不在开发服务器的URL中包含端口号,但是如果我在生产服务器上使用端口,它将不会build立连接。 我不确定这是为什么,但是我想这个端口是隐含在来自我的浏览器的请求中的,如果明确声明的话,也许有关这个格式的东西使它无法识别。

我所做的更改:

我从服务器中删除了io.origins语句,因为socket.io的默认值是允许任何来源。 这消除了一个可能的错误来源。

我从angular度控制器中的$ http.get()中删除端口号,并将var socket = io('http://example.com:8080') to var socket = io('http://example.com')在另一个脚本