如何使用 Node.JS 通过标识符跟踪用户
How to keep track of users by identifier using Node.JS
我正在收听一个小型 socket.io 聊天应用程序。每次用户加入时,服务器都会发出一条消息,其中包含用户名和当场生成的 ID。但是,当用户发送消息时,服务器只广播带有userid 的消息,没有用户名。此代码片段显示了当用户连接并发送消息时触发的事件。
socket.on('chat_new_user', (data) => {
var json = JSON.parse(data);
console.log('new user!')
console.log(json.userid)
console.log(json.username)
});
socket.on('chat_new_message', (data) => {
var json = JSON.parse(data);
console.log(`${json.userid} - new message!`)
console.log(json.msg)
我的问题是,即使我在消息中只有用户 ID,如何在他发送新消息时将用户名记录到我的控制台?json?
您可能需要将用户数据存储在数组中
const users = []
socket.on('chat_new_user', (data) => {
var json = JSON.parse(data);
console.log('new user!')
console.log(json.userid)
console.log(json.username)
users.push({ id: json.userid, username: json.username })
});
socket.on('chat_new_message', (data) => {
var json = JSON.parse(data);
console.log(`${json.userid} - new message!`)
const user = users.find((user) => user.id === json.userid)
console.log(json.msg)
// check whether `user` exit
if (user) {
console.log(user.username)
}
我正在收听一个小型 socket.io 聊天应用程序。每次用户加入时,服务器都会发出一条消息,其中包含用户名和当场生成的 ID。但是,当用户发送消息时,服务器只广播带有userid 的消息,没有用户名。此代码片段显示了当用户连接并发送消息时触发的事件。
socket.on('chat_new_user', (data) => {
var json = JSON.parse(data);
console.log('new user!')
console.log(json.userid)
console.log(json.username)
});
socket.on('chat_new_message', (data) => {
var json = JSON.parse(data);
console.log(`${json.userid} - new message!`)
console.log(json.msg)
我的问题是,即使我在消息中只有用户 ID,如何在他发送新消息时将用户名记录到我的控制台?json?
您可能需要将用户数据存储在数组中
const users = []
socket.on('chat_new_user', (data) => {
var json = JSON.parse(data);
console.log('new user!')
console.log(json.userid)
console.log(json.username)
users.push({ id: json.userid, username: json.username })
});
socket.on('chat_new_message', (data) => {
var json = JSON.parse(data);
console.log(`${json.userid} - new message!`)
const user = users.find((user) => user.id === json.userid)
console.log(json.msg)
// check whether `user` exit
if (user) {
console.log(user.username)
}