gpt4 book ai didi

javascript - 在socket.io和node.js上使用disconnect函数

转载 作者:行者123 更新时间:2023-12-03 12:07:38 24 4
gpt4 key购买 nike

我试图拥有它,以便当用户从我的聊天室断开连接时,它会弹出“已离开聊天室”。

这是我的服务器代码:

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

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




io.on('connection', function(socket){
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});

socket.on('disconnect', function(nickname){
io.emit('disconnect', nickname);
});

});

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

这是我的客户端代码:

var socket = io();
var nickname;
var leaving;

$('messageForm').submit(function(){
socket.emit('chat message', (nickname + ": " + $('#m').val()));
$('#m').val('');
return false;
});

$('#nicknameForm').submit(function(){

nickname = $('#nickname').val();

if(nickname ==''){
alert("Please enter a value");
}else{
$( "#dialog" ).dialog( "close" );
leaving = nickname + " has left";
}
return false;
});

socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
});


socket.on('disconnect', function(nickname){
socket.emit('disconnect message', nickname);
});

目前,什么也没有出现,我不太清楚为什么。

最佳答案

当另一个客户端断开连接时,您需要向客户端发出唯一的事件。

更改以下内容:

socket.on('disconnect', function() {
io.emit('disconnect', nickname);
});

对于这样的事情:

socket.on('disconnect', function() {
socket.broadcast.emit('user disconnect', nickname);
});

并将其添加到您的客户端代码中:

socket.on('user disconnect', function(nickname){
$('#messages').append($('<li>').text(nickname+' has left the channel.'));
});

关于javascript - 在socket.io和node.js上使用disconnect函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25110750/

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