2011-09-19 68 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}); 

這個工作對我來說!