//服务端
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);
})
原文:https://www.cnblogs.com/zhuangbowu/p/14586373.html