2017-09-22 41 views
1

我正在寫一個非常簡單的應用程序(現在),我需要記錄每個連接和斷開div內。目前我可以記錄我的控制檯上的每個連接和斷開連接的代碼,但是對我有限的socket.io知識,我無法弄清楚如何在我的index.html文件 的div上登錄它們,即我需要server.js發出(?)連接和斷開連接,並將它們追加到div,而不是將它們記錄在我的控制檯上。 我包括我的server.js文件和我的html文件(其中包含客戶端的腳本)。日誌記錄連接並斷開連接socket.io

我server.js

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




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

io.on('connection', function (socket) { 
    ID = socket.id; 
    console.log('client id - ' + socket.id + ' connected.'); 
    socket.on('disconnect', function() { 
     console.log('client id - ' + socket.id + ' disconnected.')}) 

}) 



server.listen(80, '95.211.186.223', function() { 
    console.log("Listening on 80") 
}); 

我的index.html

<!doctype html> 
<html lang="en"> 
<head></head> 
<body> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>  
    <script> 
     var socket = io.connect('http://95.211.186.223:80'); 
     socket.on('connect', function(data) { 
      console.log('ID: ' + socket.id) 
     }); 
    </script> 

    <div id="log"></div> 
</body> 
</html> 

回答

0

有落實,許多方面。只是其中之一:

在服務器:

io.on('connection', function (socket) { 
    ID = socket.id; 
    console.log('client id - ' + socket.id + ' connected.'); 
    io.sockets.emit('connect_event', data);  
}) 

io.on('disconnect', function() { 
    ID = socket.id; 
    console.log('client id - ' + socket.id + ' disconnected.'); 
    io.sockets.emit('disconnect_event', data); 
} 

如果你想知道如何發出一條消息給大家see the relevant question.

在客戶端:

function addText(eventType) { 
    var p = document.createElement('p'); 
    p.innerHTML = 'ID: ' + socket.id + ' ' + eventType; 
    document.body.appendChild(p); 
} 
socket.on('connect_event', function(data) { 
    addText('connected') 
}); 
socket.on('disconnect_event', function(data) { 
    addText('disconnected') 
}); 
+0

也許我不是描述性不夠。 這將給每個連接的socket.id打印出來。 我需要記錄所有新連接和斷開連接。不只是頁面上的一個。 我認爲server.js將不得不將這些數據發送到索引文件,以便每個新連接都附加到div而不是僅附加到一個。 –

+0

更新了答案。希望我正確地得到了你的問題。 – kurumkan

+0

是的。非常感謝你。 –