wordpress 站外链接,清远做网站的有哪些,重庆服装网站建设地址,扬州建设工程交易网在聊天群里#xff0c;以及私聊时#xff0c;可以点对方头象弹出踢跟拉黑#xff0c;踢只是让对方退出聊天室。拉黑是记对方退出且不能再进入。
socket.io 中的踢人流程#xff1a; 将用户从groupUsers 删除#xff0c;表现在uniapp的界面#xff0c;就是通知friends页以及私聊时可以点对方头象弹出踢跟拉黑踢只是让对方退出聊天室。拉黑是记对方退出且不能再进入。
socket.io 中的踢人流程 将用户从groupUsers 删除表现在uniapp的界面就是通知friends页你这孙子被踢了。只是提示。但还能进去。但是如果是被黑则是你被踢且删除。这时要求界面进行重新的绑定。将这一个群或将私聊删掉。 const groups {}; // 存储用户与群组的映射const kickedUsers {}; // 存储被踢出用户的信息const groupUsers {}; // 存储每个群组中的用户列表socket.on(kickUser, ({ groupName, userName }) {for (let id in groups) {if (groups[id].userName userName groups[id].groupName groupName) {io.sockets.sockets.get(id).leave(groupName);io.to(groupName).emit(message, ${userName} 已被踢出群组);// 从用户列表中删除if (groupUsers[groupName]) {groupUsers[groupName] groupUsers[groupName].filter(user user ! userName);io.to(groupName).emit(userList, groupUsers[groupName]);}console.log(${userName} 被踢出群组 ${groupName});if (!kickedUsers[groupName]) {kickedUsers[groupName] [];}kickedUsers[groupName].push(userName);break;}}});再加入一个退群功能
app.get(/leavgroup, authenticateToken, async (req, res) {try {const userId req.user.id;let { groupid: group_id } req.query;await Friend.destroy({ where: {user_id:userId, group_friend_id:group_id,type:group } });return res.json({ code:0, message: 退出成功 });} catch (error) {console.log(error)return res.json({ code:1, message: 退出出错 });}
});
拉黑的接口
app.get(/black, authenticateToken, async (req, res) {try {const userId req.user.id;let { group_id,name } req.query;let user await User.findOne({ where: { username:name } });if(user){let user_id user.id;if(userIduser_id){return res.json({ code:1, message: 不能拉黑自己 });}if(group_id0){await Friend.destroy({ where: {user_id:user_id, group_friend_id:group_id,type:user_id } });await Invite.destroy({ where: {inviter_id:userId, invitee_id:user_id } });return res.json({ code:0, message: 拉黑成功 });}else{//删除所有的记录await Friend.destroy({ where: {user_id:user_id, group_friend_id:userId,type:user } });await Friend.destroy({ where: {user_id:userId , group_friend_id:user_id,type:user } });await Invite.destroy({ where: {inviter_id:user_id, invitee_id:userId,group_id } });await Invite.destroy({ where: {inviter_id:userId, invitee_id:user_id ,group_id } });}}return res.json({ code:0, message: 退出成功 });} catch (error) {console.log(error)return res.json({ code:1, message: 退出出错 });}
});