Go语言实现websocket与前端交互

2022-09-17 09:17:20

1、在https://www.golangtc.com/download/package下载第三方包websocket,点击Go!后,下载地址出现,点击就会下载第三方包


2、websocket会自动断开,看网上需要保持心跳,还有nginx的修改(没有生效),先用for死循环则不会断开,程序如下:

package websocketservice

import (
    ."domain/model""infrastructure/log""net/http""time""golang.org/x/net/websocket"
)

var ws *websocket.Conn

func GetWebsocketInstance() {
    http.Handle("/check", websocket.Handler(checkServiceHandler))
    http.Handle("/", http.FileServer(http.Dir(".")))
    err := http.ListenAndServe(":8087", nil)

    if err != nil {
        panic("ListenAndServe: " + err.Error())
    }
}

func checkServiceHandler(ws *websocket.Conn) {
    defer ws.Close()
    log.Error("begin")
    //  time.Sleep(60 * time.Second)
    for { //websocket若不实时发送数据,会自动断开
        time.Sleep(120 * time.Second)
        log.Error("Serviceresult", Serviceresult)
        err := websocket.JSON.Send(ws, Serviceresult)
        if err != nil {
            log.Error("send failure")
            //break
        }
    }
}
  • 作者:泪光雨99
  • 原文链接:https://blog.csdn.net/u012189747/article/details/77878784
    更新时间:2022-09-17 09:17:20