相关疑难解决方法(0)

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

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

go websocket

5
推荐指数
1
解决办法
3687
查看次数

Golang一对一聊天

我想在golang上进行一对一的聊天,我发现这个简单的脚本与websocket它工作得很好,它是一个房间,你想要多少用户.但是我希望将它转换为一对一,就像facebook一样,这是脚本,如果有人可以提供帮助,因为我不知道我需要使用更多连接或过滤用户.

package main

import (
    "log"
    "net/http"

    "github.com/gorilla/websocket"
)

var clients = make(map[*websocket.Conn]bool) // connected clients
var broadcast = make(chan Message)           // broadcast channel

// Configure the upgrader
var upgrader = websocket.Upgrader{
    CheckOrigin: func(r *http.Request) bool {
        return true
    },
}

// Define our message object
type Message struct {
    Email    string `json:"email"`
    Username string `json:"username"`
    Message  string `json:"message"`
    Created  string `json:"created"`
}

func main() {
    // Create a simple file server
    fs := http.FileServer(http.Dir("public"))
    http.Handle("/", fs)

    // Configure websocket …
Run Code Online (Sandbox Code Playgroud)

chat go websocket

4
推荐指数
1
解决办法
1420
查看次数

标签 统计

go ×2

websocket ×2

chat ×1