【发布时间】:2026-01-17 06:15:01
【问题描述】:
我正在尝试制作一个推送通知系统,但要做到这一点,我需要找到正确的方法来向用户的所有活动套接字连接发出一些东西(我们假设登录的 User1 已经打开了我的网站)比他的网络浏览器的一个标签)
所以,当用户连接到他的帐户(带有会话)时,我在 MySQL 中保存了所有活动的套接字 ID:
user_id | socket_id
1 | 4lf3dsg2bx1u9d # User 1...
1 | 75ksdfzfff1u3d # ...has two active socket connections
2 | GEdsfoorbar1z4
在我的脚本中类似于以下内容:
io.sockets.sockets[socket_id].emit(...) # for each sockets of User1
但是,我确信 MySQL 不是对套接字进行排序的最佳方法...
有人有更好的解决方案吗?像io.sockets.has('user=1') 或其他神奇的东西?
我还测试了在 Object 中按用户 ID 存储每个套接字的解决方案,但性能如何?
【问题讨论】:
-
“性能怎么样”?怎么样?它不能比存储在 RAM 中更快..