2016-10-25 208 views
0

我是socket.io的新手,並且能夠從本地主機上正確運行的不同教程中獲得許多示例。現在我需要幫助讓它在我的網站上工作。我一直在瀏覽支持表單,但沒有運氣。任何幫助,將不勝感激。這是我迄今爲止所做的...Socket.io適用於本地主機,但不適用於網絡服務器

我使用FileZilla FTP客戶端將我的web服務器(託管於https://ifastnet.com/)的代碼(在我的本地主機上工作)導出並執行了相同的「npm init」, 「npm install express --save」,「npm install socket.io --save」,「節點app.js」過程在我使用CMD的putty SSH過程中,當我能夠使它在我的本地主機上工作時。

當我去我的網站,我不斷收到「網:: ERR_CONNECTION_RESET」在瀏覽器控制檯(谷歌瀏覽器),當我在客戶端使用

var socket = io.connect('http://31.22.4.6:1122'); 

我得到「404(未找到)」,在瀏覽器控制檯,當我使用

var socket = io(); 

我已經嘗試了很多的解決方案,沒有運氣

我的代碼如下。先謝謝您的幫助。

服務器

var app = require('express')(); 
var server = require('http').Server(app); 
var io = require('socket.io')(server); 

server.listen(); 
// server.listen(1122, "31.22.4.6"); 

app.get('/', function(req, res) { 
    res.sendfile(__dirname + '/client/index.html'); 
}); 

console.log("server started"); 


io.on('connection', function(socket) { 
    console.log("connection made"); 
    socket.emit('news', { 
     hello: 'world' 
    }); 
    socket.on('my other event', function(data) { 
     console.log(data); 
    }); 
}); 

客戶

<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> 
<script> 
    // var socket = io.connect('http://localhost'); 
    // var socket = io.connect('http://31.22.4.6:1122'); 
    var socket = io(); 
    // var socket = io.connect(); 
    socket.on('news', function (data) { 
    console.log(data); 
    socket.emit('my other event', { my: 'data' }); 
    }); 
</script> 
+0

我想你已經按照[這些說明](http://kb.ifastnet.com/index.php?/article/AA-00416/52/Node.js/Using-Node.js-on-a -premium共享承載式account.html)?在這種情況下,只需使用客戶端的默認端口(80):'var socket = io('http://31.22.4.6')'(端口80隱含)。並取消服務器中的server.listen(1122,「31.22.4.6」)註釋。 – Xodrow

+0

感謝您的評論Xodrow。我試過了,但我仍然在瀏覽器的控制檯中發現「net :: ERR_CONNECTION_RESET」錯誤。 – DarkwallLKE

回答

0

是否使用https://ifastnet.com。您似乎沒有訪問其服務器上的運行節點的權限,也無權訪問端口1122上的內容。

您需要一個爲您提供ssh的服務,例如Amazon。如果您想在購買之前嘗試購買,他們可以爲您提供免費層服務,以嘗試Ubuntu虛擬機幾個月。

+0

是的,我正在使用ifastnet。他們確實爲我提供了SSH。我可以使用膩子(端口1122)和我的憑據登錄。從那裏我可以使用「node app.js」命令啓動節點。當我運行它時,我可以將消息打印到putty命令行。恩。如果你看看我上面的服務器代碼,當我運行「node app.js」時,我在命令行看到「server started」。 – DarkwallLKE

相關問題