如果我在主要或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
提交
取消