首页 > 其他 > 详细

node里面socket.io的房间加入稍微复杂点的实现

时间:2021-03-27 22:09:16      阅读:26      评论:0      收藏:0      [点我收藏+]

//服务端

let io = require(‘socket.io‘)();
let userList = [
{
name: "用户1",
age: "18",
id: "00000001"
},
{
name: "用户2",
age: "18",
id: "00000002"
},
{
name: "用户3",
age: "18",
id: "00000003"
},
];
let roomList = [
{
name: "room1",
id: "0",
},
{
name: "room2",
id: "1",
},
{
name: "room3",
id: "2",
},
];
io.sockets.on(‘connection‘, socket => {
socket.emit("/api/roomList", roomList)
socket.on("/api/addRoom", (data) => {
roomList.forEach(item => {
if (data.id === item.id) {
let res = socket.join(item.name);
console.log(res);
userList.forEach(userItem => {
if (userItem.id === data.userId) {
socket.to(item.name).emit(‘addRoom‘, `恭喜${userItem.name}加入${item.name}房间成功`);
}
})
}
})
})

socket.join("room1", function () {
console.log("Joined room")
})
socket.on(‘joinRoom‘, function (data) {
console.log("Joining room")
socket.to(‘room1‘).emit(‘roomJoined‘, data);
});
});
//解决跨域
io.listen(8080, {cors: true});
//客户端
<script src="http://localhost:8080/socket.io/socket.io.js"></script>

var socket = io(‘http://localhost:8080‘)
/* 获取房间列表 */
let user = {
name: "用户1",
age: "18",
id: "00000001"
}
socket.on("/api/roomList", (data) => {
console.log("房间列表");
console.log(data);
$("#oUi").html(data.map((item, index) => {
return `
<li data-key="${item.id}">${item.name}</li>
`
}))
})
$("#oUi").on("click", "li", (event) => {
let id = $(event.target).attr("data-key");
let data = {
"userId": user.id,
"id": id,
}
socket.emit("/api/addRoom", data)
socket.emit("/api/remove", data)

})
socket.on("addRoom", data => {
console.log(data);
})

node里面socket.io的房间加入稍微复杂点的实现

原文:https://www.cnblogs.com/zhuangbowu/p/14586373.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!