我很難理解我使用博客所做的事情的實(shí)現(xiàn)我正在創(chuàng)建一個(gè)新的 websocket 連接,其中我正在運(yùn)行一個(gè)無(wú)限循環(huán)據(jù)我了解無(wú)論 websocket 收到什么消息,無(wú)限循環(huán)都應(yīng)該無(wú)限期地運(yùn)行但事實(shí)并非如此,它內(nèi)部的邏輯只有在從前端 ws 連接發(fā)送“新的有效負(fù)載/消息”時(shí)才會(huì)觸發(fā):func (s *SocketHandlers) NewConnectionHandler(w http.ResponseWriter, r *http.Request) { // upgrade the http request to a ws request ws, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Fatal(err) } defer ws.Close() for { // infinite loop log.Println("Checking to see if this repeats") // <=== PRINTS ONLY ONCE! var payload core.NewSessionPayload if err := ws.ReadJSON(&payload); err != nil { log.Println("Cannot read socket conection payload") log.Fatal(err) } s.clientsMap[ws] = core.ClientNode{ Active: true, Username: payload.Username, } // broadcast the latest users list to all the users s.broadcaster <- payload.Username }}
Go-處理程序中的無(wú)限循環(huán)
哆啦的時(shí)光機(jī)
2022-11-28 17:05:34