我正在尝试用Go学习websockets。我一直在看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收到了消息或通知?这是一个如何实现这样的事情吗?如果是这样的话,那我该怎么做?
答案 0 :(得分:0)
有没有办法让我获得连接的唯一ID,我可以 保存在像redis这样的数据库中,并将其链接到同一个用户ID 数据库,然后使用该websocket id发送回特定的 客户端,如果该用户ID收到消息或通知?
当然!用户注册时,您可以自己生成Id。只需在a
结构
在聊天示例中,您有hub,其中包含连接池。该池用于向所有用户广播消息:
connection
所以你去吧。你应该制作发送私信的方法,依赖于userId