为了账号安全,请及时绑定邮箱和手机立即绑定

在Websocket中使用频道

在Websocket中使用频道

Go
饮歌长啸 2021-04-02 22:27:17
如果我在主要或func家庭中的任何地方使用chan,则该应用程序会运行,但实际上并不能正常工作。没有引发任何错误,但是,它将不起作用。如果我删除了频道引用,它将恢复正常工作。通过在结构或全局通道中使用chan,应用程序将停止运行。在一个GET请求时,它返回h.Message从func home 由代码添加任何频道,GET请求不会返回消息。https://play.golang.org/p/-ZVcLhZRRRGpackage mainimport (    "fmt"    "net/http"    "github.com/gorilla/websocket"    // _ "github.com/go-sql-driver/mysql")type WMessage struct {    Message string `json:"message"`    ch      chan string}var upgrader = websocket.Upgrader{    ReadBufferSize:  1024,    WriteBufferSize: 1024,    CheckOrigin: func(r *http.Request) bool {        return true    },}var Chann chan stringfunc (h *WMessage) home(w http.ResponseWriter, r *http.Request) {    h.Message = "hey this is the message from home"    fmt.Fprintln(w, h.Message)    fmt.Println(<-h.ch)}func main() {    hom := &WMessage{}    hom.ch = make(chan string)    hom.ch <- "message sent"    http.HandleFunc("/", hom.home)    err := http.ListenAndServe(":3000", nil)    if err != nil {        fmt.Println("there was an error -> ", err)    }}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 300 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信