-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathserver.js
More file actions
105 lines (80 loc) · 2.77 KB
/
Copy pathserver.js
File metadata and controls
105 lines (80 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// const http =require('http');
// const WebSocket = require('ws');
// const server = http.createServer();
// const wss = new WebSocket.Server({server});
const app = require('express')();
const server = require('http').createServer(app);
const { Server } = require('socket.io');
const io = new Server(server);
// 创建一个Map,其中键是group ID,值是StringList实例
const groupMap = new Map();
io.on('connection', (socket) => {
console.log('connection');
socket.on('joinGroup', (name, groupid) => {
// 让客户端加入特定组
socket.join(groupid);
io.to(groupid).emit('joinGroup', name + " joins group " + groupid);
});
socket.on('getList', (groupid) => {
// 让客户端加入特定组
const groupList = groupMap.get(groupid);
if (groupList) {
io.to(groupid).emit('getList', groupList);
} else {
io.to(groupid).emit('getList', []);
}
});
socket.on('updateList', (groupid, list) => {
// console.log('message: ' + msg);
// io.emit('message', msg);
groupMap.set(groupid, list);
io.to(groupid).emit('updateList', "group" + groupid + "'s url list has been updated");
io.to(groupid).emit('getList', list);
});
socket.on('message', (groupid, msg) => {
// console.log('message: ' + msg);
// io.emit('message', msg);
io.to(groupid).emit('message', msg);
});
socket.on('disconnect', () => {
console.log('与客户端的连接已断开');
});
socket.on('close', () => {
console.log('close');
});
});
// server.on('request', (req, res)=>{
// res.writeHead(200, {'Content-Type': 'text/plain'});
// res.end('Hello World\n');
// });
server.listen(3000, () => {
console.log('server running at http://localhost:3000');
});
// // 用于存储用户信息的对象
// const users = {};
// const userIPs = {};
// app.use(express.json());
// // 处理用户IP地址的请求
// app.post('/record-ip', (req, res) => {
// const userIP = req.ip; // 获取用户的IP地址
// const { userId, message } = req.body;
// // 存储用户的IP地址和消息
// userIPs[userId] = userIP;
// res.json({ message: userIP });
// });
// // 处理Axios请求
// app.post('/api/send-request', (req, res) => {
// const { userId, groupId } = req.body;
// // 确保userId和groupId存在
// if (!userId || !groupId) {
// return res.status(400).json({ error: 'userId and groupId are required' });
// }
// // 如果用户不存在,创建一个新用户
// if (!users[userId]) {
// users[userId] = { groupId };
// }
// res.json({ message: 'Request received successfully' });
// });
// app.listen(port, () => {
// console.log(`Server is running on port ${port}`);
// });