gpt4 book ai didi

javascript - 记录与 socket.io 的连接和断开连接

转载 作者:行者123 更新时间:2023-11-28 04:10:13 24 4
gpt4 key购买 nike

我正在编写一个非常简单的应用程序(目前),我需要在 div 内记录每个连接和断开连接。目前,我可以使用我拥有的代码在控制台上记录每个连接和断开连接,但由于我对 socket.io 的了解有限,我不知道如何将它们记录在我的 index.html 文件的 div 中即我需要 server.js 发出(?)连接和断开连接并将它们附加到 div,而不是仅仅将它们记录在我的控制台上。我包含了 server.js 文件和 html 文件(其中包含客户端脚本)。

我的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>

最佳答案

有很多方法可以实现这一点。仅其中之一:

在服务器上:

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')
});

关于javascript - 记录与 socket.io 的连接和断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46363715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com