如何使用Go和gorilla websocket仅发送给一个客户端而不是所有客户端

时间:2015-07-23 21:14:36

标签: go websocket

我正在尝试用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收到了消息或通知?这是一个如何实现这样的事情吗?如果是这样的话,那我该怎么做?

1 个答案:

答案 0 :(得分:0)

  

有没有办法让我获得连接的唯一ID,我可以   保存在像redis这样的数据库中,并将其链接到同一个用户ID   数据库,然后使用该websocket id发送回特定的   客户端,如果该用户ID收到消息或通知?

当然!用户注册时,您可以自己生成Id。只需在a结构

中添加userId字段即可

在聊天示例中,您有hub,其中包含连接池。该池用于向所有用户广播消息:

connection

所以你去吧。你应该制作发送私信的方法,依赖于userId