2015-07-12 93 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

我希望它也公开,但当我将私人地址更改为公共地址时,它不会连接。 –