2015-07-12 94 views
0

所以,我試圖在我的私人服務器上運行我的Node.js。現在的事情是,我創建了一個聊天程序,當我在本地網絡上運行它時,這個程序非常好用。使用公共IP運行/socket.io/socket.io.js

現在,當我將IP更改爲我的公共IP時,它不會加載/socket.io/socket.io.js文件。它說net::ERR_CONNECTION_TIMED_OUT

在那裏我連接的部分代碼如下:

Server.js:

var mongo = require('mongodb').MongoClient, 
    client = require('socket.io').listen(8080).sockets; 
    console.log('info - socket.io started'); 

mongo.connect('mongodb://127.0.0.1/chat', function(err, db) { 
    if(err) throw err; 

的Index.html:

<script src="http://94.211.125.196:8080/socket.io/socket.io.js"></script> 

<script> 
// Try connection 
try { 
    var socket = io.connect('http://94.211.125.196:8080'); 
} catch(e) { 
    // Set status to warn user 
} 
</script> 

我有必要的端口端口轉發到我的服務器(8080 & 27017

+0

數據庫連接是否工作? Mongo默認阻止除localhost(AFAIK)之外的所有內容。 – Dodekeract

+0

不,我已經將它改回到本地主機,因爲它只會在服務器上運行。 @Dodekeract –

回答

1

您沒有託管socket.io.js文件。您需要從其他位置包含js文件,或者通過在節點腳本中啓動httpServer來託管它。嘗試使用socket.io cdn:

<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script> 
+0

謝謝!你有沒有機會知道如何修復'var socket = io.connect('http://10.0.0.199:8080');'? –

+0

這是怎麼回事?如果有一個套接字服務器在該地址運行,它應該連接。你有錯誤信息嗎? –

+0

我希望它也公開,但當我將私人地址更改爲公共地址時,它不會連接。 –