【发布时间】:2021-12-29 03:22:25
【问题描述】:
根据socket.io documentation for generating custom id 这应该可以工作:
const express = require('express');
const app = express();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
require('dotenv').config();
io.engine.generateId = (req) => {
// generate a new custom id here
var randomCode = '';
for (let r = 0; r < 6; r++) {
randomCode += Math.floor(Math.random() * 10)+'';
}
return randomCode
}
io.on('connection', (socket) => {
console.log("a user connected :D", socket.id);
socket.on('storeClientInfo', (data) => {
console.log(socket.id)
});
socket.on("private message", (anotherSocketId, msg) => {
console.log(anotherSocketId, msg)
socket.to(anotherSocketId).emit("private message", socket.id, msg);
});
});
server.listen(4000);
app.listen(process.env.PORT, () => console.log('Server is running'));
但控制台输出对我不起作用:
a user connected :D wJ8d-SC2su9YYCdWAAAC
应该是6个随机数,这个随机数只是为了测试我想稍后在数据库中将id分配给用户id。
【问题讨论】: