我希望实现一个简单的通知系统。当用户1点赞用户2的帖子时,用户2应该从用户1那里得到实时通知。
以下是客户端函数(Redux操作)的一部分,其中有人点赞了一个帖子:
这里是服务器套接字函数,当
现在的问题是,
以下是客户端函数(Redux操作)的一部分,其中有人点赞了一个帖子:
.then(() => {
const socket = require("socket.io-client")(
"http://localhost:5000"
);
socket.emit("like", user, post);
});
这里是服务器套接字函数,当
user1
喜欢user2
的帖子时,会创建一个通知。io.on("connection", (socket) => {
socket.on("like", async (user, post) => {
if (!post.post.likedBy.includes(user.user._id)) {
const Notification = require("./models/Notification");
let newNotification = new Notification({
notification: `${user.user.username} liked your post!`,
sender: user.user._id,
recipient: post.post.by._id,
read: false,
});
await newNotification.save();
io.emit("notification");
}
});
});
在通知创建后,以下是客户端函数:
socket.on("notification", () => {
console.log("liked");
});
现在的问题是,
console.log(“liked”)
会同时出现在user1
和user2
上。我该如何发射事件只给接收通知的那个用户?socket.io如何找到从user1
接收通知的特定user2
?