gpt4 book ai didi

javascript - 在套接字 io 连接中设置用户名

转载 作者:行者123 更新时间:2023-11-29 00:24:55 25 4
gpt4 key购买 nike

我有一个聊天应用程序,我必须在其中处理在线用户。我如何发送用户名:

    var myIoSocket = io.connect();

所以我可以在后端制作一个列表。

目前我是这样做的。

Socket.on("connect",function(){
Notification.primary('Connected');
Socket.emit('iamonline',{
username: $rootScope.username
});
});

后端:

var onlineUsers = {};
io.sockets.on('connection', function(socket){
socket.on('iamonline',function (data) {
console.log(data.username," connected.")
onlineUsers[data.username] = socket;
Users[data.username] = socket;
currentUser = data.username;
console.log(socket)
io.sockets.emit("liveusers",Object.keys(onlineUsers));
});
socket.on('disconnect', function(){
delete onlineUsers[currentUser];
console.log(currentUser," disconnected.");
io.sockets.emit("liveusers",Object.keys(onlineUsers));
});
});

最佳答案

我在另一个项目中遇到了同样的问题,并找到了通过查询和获取握手值(value)的最佳方式。

服务器.js

io.on('connection' , function(socket){
if(typeof socket.handshake.name!="undefined"){
user = {
name : socket.handshake.query.name,
id : socket.handshake.query.id,
email : socket.handshake.query.email,
}
}
});

在客户端,

if(typeof io != "undefined"){
var visitor = io.connect('ws://127.0.0.1:8000' , {
'query': $.param({token: '<?=Session::$instance->session['id']?>'}) + '&name=<?=Session::get("username")?>&id=<?=Session::get("ID")?>&email=<?=Sesion::get("Email")?>'
});
}

关于javascript - 在套接字 io 连接中设置用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43280613/

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