2011-09-19 64 views
5

我有两台机器在同一网络上说在192.168.1.2和192.168.1.3。本地网络上的Socket.io/node.js?

192.168.1.2 =服务器的/ dev PC

192.168.1.3 =客户端/浏览器的PC

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

运行

在客户端服务器我使用的是Chrome浏览器

服务器托管喜欢

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

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

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

现在它不适用于任何一台pc。我知道它应该是

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

因为它说socket.io github,但我只想测试本地网络。

我也看了

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

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

那么我怎样才能得到在本地网络环境中的客户端socket.io资源?或者你们是否知道一个提供0.8.4版本socket.io的网站我可以使用?

注意:没有防火墙问题。

+0

socket.io.js只会是您的应用程序运行的同一台机器上的服务器,与您访问的机器无关。 –

+0

@Marcel M.你不在谈论什么?它们一直用于在线聊天应用程序 – Derek

+0

我的意思是使用'localhost'只能在服务器和客户端是同一台机器时运行,不管端口 –

回答

0

更换

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

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

+0

只有当客户端和服务器在同一台机器上时才起作用 – Derek

+0

plz阅读https://github.com/LearnBoost/Socket.IO/wiki/How-do-I-serve-the-client和还有谁回答了这个问题? – Derek

+0

如果你能plz删除这个答案因为它不对 – Derek

2

如果您使用的是同一台主机的不同端口提供socket.io您可以尝试使用

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

它看起来像一个黑客,但它的工作原理,只是用你服务于socket.io的端口替换9998。

2

尝试让socket.io与

var socket = io.connect(); 

为我工作自动地连接。

0

该指数:

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

而且从客户端的连接:

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

这个工作对我来说!