Nodejs Socket.io 从 on("connection") 事件获取用户
Nodejs Socket.io getting user from on("connection") event
有没有办法从 socket.io 连接事件中确定用户?
以下代码用于当前从前端获取用户对象:
io.on("connection", async (socket: Socket) => {
socket.on("user-joined", (user) => {
console.log("front end says hi", user);
connectedUsers.push(user);
});
});
我想知道是否有一种方法可以在连接事件中立即传递用户,这样我就不必收听后续 'user-joined' 消息?
在客户端,我们似乎可以将 auth
与连接一起传递。
来自https://socket.io/docs/v4/client-initialization/#auth
import { io } from "socket.io-client";
const socket = io({
auth: {
user: "abcd"
}
});
解决方案类似于:
io.on("connection", async (socket: Socket) => {
console.log("front end says hi", socket.handshake.auth); // prints { user: "abcd" }
});
我能否将数据与“连接”消息一起传递以识别正在连接的用户?
谢谢
是的,可以在初始连接事件中识别用户。
开始:客户端必须使用选项参数初始化套接字连接。选项应包括指定用户的 auth
属性。
例如在客户端:
import { io } from "socket.io-client";
const socket = io({
auth: {
user: "abcd"
}
});
在服务器端,我们可以读取连接事件处理程序中的 auth
数据:
io.on("connection", async (socket: Socket) => {
console.log("front end says hi", socket.handshake.auth);
// prints "front end says hi", { user: "abcd" }
});
您可能还会发现这个 link 对官方文档有帮助:https://socket.io/docs/v4/client-initialization/#auth
有没有办法从 socket.io 连接事件中确定用户?
以下代码用于当前从前端获取用户对象:
io.on("connection", async (socket: Socket) => {
socket.on("user-joined", (user) => {
console.log("front end says hi", user);
connectedUsers.push(user);
});
});
我想知道是否有一种方法可以在连接事件中立即传递用户,这样我就不必收听后续 'user-joined' 消息?
在客户端,我们似乎可以将 auth
与连接一起传递。
来自https://socket.io/docs/v4/client-initialization/#auth
import { io } from "socket.io-client";
const socket = io({
auth: {
user: "abcd"
}
});
解决方案类似于:
io.on("connection", async (socket: Socket) => {
console.log("front end says hi", socket.handshake.auth); // prints { user: "abcd" }
});
我能否将数据与“连接”消息一起传递以识别正在连接的用户?
谢谢
是的,可以在初始连接事件中识别用户。
开始:客户端必须使用选项参数初始化套接字连接。选项应包括指定用户的 auth
属性。
例如在客户端:
import { io } from "socket.io-client";
const socket = io({
auth: {
user: "abcd"
}
});
在服务器端,我们可以读取连接事件处理程序中的 auth
数据:
io.on("connection", async (socket: Socket) => {
console.log("front end says hi", socket.handshake.auth);
// prints "front end says hi", { user: "abcd" }
});
您可能还会发现这个 link 对官方文档有帮助:https://socket.io/docs/v4/client-initialization/#auth