如何将消息从golang的websocket服务器主动发送到客户端

朱杰森:

我是golang和websocket的新手。

我正在尝试编写一个websocket服务器,一旦握手完成,该服务器可以将消息主动发送到客户端。

但是我的服务器只会在收到来自客户端的请求后才将消息发送给客户端。

有谁知道如何实现此功能,或者在哪里可以找到相关的答案?

非常感谢。

源代码如下:

package main

import (
    "log"
    "net/http"
)

func handler(w http.ResponseWriter, req *http.Request) {
    w.Header().Set("Content-Type", "text/plain")
    w.Write([]byte("Hi, the handshake is completed.\n"))
    w.Write([]byte("Let's start to talk something.\n"))
}

func main() {
    http.HandleFunc("/", handler)
    log.Printf("Start to listen on 443.")
    err := http.ListenAndServeTLS(":443", "server.crt", "server.key", nil)
    log.Fatal(err)
}
匈奴:

尝试打包websocket

这是Godoc的一个简单示例

var upgrader = websocket.Upgrader{
    ReadBufferSize:  1024,
    WriteBufferSize: 1024,
}

func handler(w http.ResponseWriter, r *http.Request) {
    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        log.Println(err)
        return
    }
    defer conn.Close()

    msg := []byte("Let's start to talk something.")
    err = conn.WriteMessage(websocket.TextMessage, msg)
    if err != nil {
        log.Println(err)
    }

    // do other stuff...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用C ++中的Websocket客户端将消息发送到服务器?

如何将客户端数据发送到服务器端

如何将值从 golang 发送到 vue js(服务器到客户端)?

服务器如何使用Java将消息发送到客户端

如何使用带代理的Signalr将消息从客户端发送到服务器?

如何将图像从服务器发送到客户端?

React 和 NodeJS:如何将数据从服务器发送到客户端?

如何将空的终端输出从服务器发送到客户端?

如何将参数从CometD客户端发送到CometD服务器

如何将Android客户端注册令牌发送到FCM服务器?

如何将JPG文件从服务器发送到客户端

如何将信息从NodeJS服务器发送到客户端?

如何将邮件从服务器发送到特定客户端

如何将信息从客户端发送到服务器(Flask-python)

如何将表单数据从客户端发送到服务器

WebSocket服务器:将文本框架发送到客户端

PHP WebSocket –如何将消息发送到指定的客户端?

将字符串消息从Netty客户端发送到服务器

将加密的消息从python客户端发送到Node.js服务器

Spring Integration TCP服务器将消息发送到TCP客户端

如何使用 RSocket 处理从服务器发送到客户端的消息?

如何使用C#包含空间将消息从客户端发送到服务器

如何将 XML 消息从 Python 客户端发送到 Spring 启动微服务

如何将通知从node.js服务器发送到android客户端。

如何将Spring Boot管理客户端元数据发送到管理服务器

如何将数据(字符串)从HTTP客户端发送到服务器

Angular2:发出请求时如何将数据从客户端发送到服务器

如何将数据从UDP服务器发送到NAT后的UDP客户端?

如何将数据从客户端的html发送到node.js服务器?