2016-03-15 77 views
0

我正嘗試使用Socket.io創建一個實時網絡聊天系統,但是我還將它與LAMP堆棧一起使用。目前我只是試圖讓我的HTML頁面識別本地主機上的連接:8888,但localhost:3000上的服務器端應該是連接時記錄下面的控制檯,但我什麼都沒有收到?NodeJS套接字連接無法正常工作

我有這個在我的服務器端 -

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

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

這是我的客戶端 -

<script src="http://localhost:3000/socket.io/socket.io.js"></script> 

    <script> 

    var socket = io.connect('localhost:3000'); 

    socket.on('connection', function(io){ 
     console.log('a user connected'); 
     io.on('disconnect', function(){ 
     console.log('user disconnected'); 
     }); 
    });    


    </script>  

我沒有看到任何控制檯日誌?我是說錯了嗎?

回答

0

在客戶端連接事件稱爲'連接'。您移動客戶端偵聽器,socke.io例如服務器,但客戶端和服務器的事件不同的是,更多的還有:http://socket.io/docs/client-api/

<script src="http://localhost:3000/socket.io/socket.io.js"></script> 
<script> 
    var socket = io('http://localhost:3000'); 
    socket.on('connect', function(){ 
    console.log('a user connected'); 
    }); 
    socket.on('disconnect', function(){ 
    console.log('user disconnected'); 
    }); 
</script> 
+0

我不明白..? – Kieron606

+0

我已經添加了一些有效的代碼。服務器和客戶端的API不同。請小心,並通過API文檔檢查它在socket.io –

0

你需要對服務器代碼,以監聽連接。

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

查看文檔的更多信息http://socket.io/docs/

+0

這沒有奏效,不明白我在做什麼錯 – Kieron606

+0

當你通過輸入節點app.js或任何你的文件被稱爲運行應用程序是否給予你有錯誤還是打印出「在*:3000上聆聽」? –

+0

它打印「聆聽*:3000」 – Kieron606