서버가 실행될 때까지 대기하는 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)
}
}
"하지만 그것은 작동하지 않습니다"- 왜? 그것은 무엇을합니까? 오류 메시지가 나타 납니까? –
죄송합니다. 서버 시작 전 클라이언트가 "패닉 : 런타임 오류 : 잘못된 메모리 주소 또는 nil 포인터 참조 해제"오류가 발생하는 경우 –
패닉 메시지에는 줄 번호도 포함되어있어 단서를 제공 할 수 있습니다. 하지만 한눈에 main을 호출하여 프로그램을 다시 시작할 수는 없습니다. Main은 런타임에서 호출되며 사용자가 직접 호출 할 수 없습니다. – Sonia