我正在尝试用 Go 学习 websocket。我一直在研究 gorilla websocket 的示例。
我已经查看了这两个示例,展示了如何使用 gorilla websocket:
https://github.com/gorilla/websocket/tree/master/examples
https://www.youtube.com/watch?v=ysAZ_oqPOo0
所有这些示例都展示了如何连接到 websocket 服务器、发送和接收文本。但我不明白的是你如何可以只发送给一个客户。因为在现实世界的应用程序中,您将拥有用户,并且我们不希望所有用户都收到相同的消息和相同的数据。有没有办法让我获得连接的唯一 ID,我可以将其保存在像 Redis 这样的数据库中,并将其链接到同一数据库中的用户 ID,然后使用该 WebSocket ID 发送回特定客户端(如果可以)用户 ID 收到消息或通知?这是一个人会如何去做并实现这样的事情吗?如果是这样的话,我该怎么办?
有没有办法让我获得连接的唯一ID
保存在像 redis 这样的数据库中,并将其链接到同一个数据库中的用户 ID
数据库,然后使用该 websocket id 发送回特定的
客户端该用户 ID 是否收到消息或通知?
当然!用户注册时可以自行生成Id。只需添加 userId 字段即可connection
结构
在聊天示例中,您有集线器,其中包含连接池。该池用于向所有用户广播消息:
case m := <-h.broadcast:
for c := range h.connections {
select {
case c.send <- m:
default:
close(c.send)
delete(h.connections, c)
}
}
}
所以就这样吧。您应该制作发送私人消息的方法,取决于 userId
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)