本地networking上的Socket.io/node.js?

我在同一个networking上有两台机器,分别是192.168.1.2和192.168.1.3。

192.168.1.2 = server / dev pc

192.168.1.3 =客户端/浏览器电脑

所以在服务器/ dev的PC上,我有一个socket.io/http服务器在端口82上运行

在客户端服务器上,我使用Chrome作为浏览器

服务器正在托pipe一个网页

<html> .... <script type="text/javascript" src="http://localhost:82/socket.io/socket.io.js"></script> .... </html> 

这是socket.io客户端所需的必要资源。 所以资源加载在我的服务器/开发电脑,但不是在我的客户端电脑上。 所以我尝试:

 <html> .... <script type="text/javascript" src="http://192.168.1.2:82/socket.io/socket.io.js"></script> .... </html> 

现在它不能在任何一台电脑上运行。 我知道这应该是

 <script src="http://<uri:port>/socket.io/socket.io.js"></script> 

正如它在socket.io github上所说的,但我只想在本地networking上进行testing。

我也看过

 <script type="text/javascript" src="http://cdn.socket.io/stable/socket.io.js"></script> 

但我使用socket.io 0.8.4所以上述版本不起作用。

那么如何才能在本地networking环境中为客户端提供socket.io资源呢? 或者你们知道一个服务于socket.io 0.8.4版本的网站,我可以使用吗?

注意:没有防火墙问题。

如果您使用同一主机的不同端口来为socket.io服务,则可以尝试使用

<script>document.write('<script src="//'+ location.hostname + ':9998/socket.io/socket.io.js">\x3C/script>')</script>

这看起来像一个黑客,但它的工作原理,只是用你正在服务的socket.io端口replace9998。

尝试让socket.io自动连接

 var socket = io.connect(); 

这对我有效。

更换

<script type="text/javascript" src="http://localhost:82/socket.io/socket.io.js"></script>

<script src="/socket.io/socket.io.js"></script>

为指标:

  <script src="/socket.io/socket.io.js"></script> 

并从客户端连接:

 var socket = io.connect('http://192.168.1.3:82', {'forceNew': true}); 

这为我工作!