我想創建一個等待服務器運行的websocket客戶端。如果連接被服務器關閉,它應該重新連接。如何讓websocket客戶端等待服務器正在運行?
我試過不工作,我的代碼將退出運行時錯誤:
panic: runtime error: invalid memory address or nil pointer dereference
func run() {
origin := "http://localhost:8080/"
url := "ws://localhost:8080/ws"
ws, err := websocket.Dial(url, "", origin)
if err != nil {
fmt.Println("Connection fails, is being re-connection")
main()
}
if _, err := ws.Write([]byte("something")); err != nil {
log.Fatal(err)
}
}
「但它不工作」 - 爲什麼?它有什麼作用?你有沒有收到任何錯誤信息? –
對不起,只要客戶端在服務器啓動前會出現錯誤「panic:運行時錯誤:無效的內存地址或零指針解除引用」 –
該恐慌信息還包含行號,可能提供線索。但是,您一眼就可以調用main來重新啓動程序。 Main由運行時調用,您自己調用它無效。 – Sonia