Heim > Artikel > Backend-Entwicklung > So legen Sie Statuscode und Grund in go Fiber/websocket/v2 fest
In der Sprache Fiber/Websocket/v2 of Go ist das Festlegen von Statuscode und Grund eine häufige Anforderung. Durch das Festlegen des Statuscodes und des Grunds können wir dem Kunden detaillierte Informationen darüber geben, wie die Anfrage bearbeitet wurde. In diesem Artikel zeigen wir Ihnen, wie Sie ganz einfach Statuscodes und Gründe in Fiber/websocket/v2 festlegen. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, dieser Artikel bietet Ihnen klare Anleitungen und praktischen Beispielcode. Lesen Sie weiter und legen Sie los!
Dies ist der Front-End-Code, ich verwende React Js
const newSocket = new WebSocket(`ws://localhost:8080/${roomID}/${userID}`); setSocket(newSocket); // Set the socket in state newSocket.onclose = (event) => { console.log(`Socket connection closed: ${event.code}`); setSocket(null); // Set the socket to null after closing }
Dies ist der Code für das Backend. Ich verwende Go Fiber und Go Fiber WebSocket
app.Get("/:room/:id", websocket.New(func(c *websocket.Conn) { roomID := c.Params("room") room := rooms[roomID] // Get the room based on roomID if room == nil { // Handle the case when the room does not exist log.Printf("Room %s does not exist", roomID) c.Close() return } }))
Ich habe versucht, einen benutzerdefinierten Rückgabecode und Grund festzulegen, aber es scheint nicht zu funktionieren, weil
newSocket.onclose = (event) => { console.log(`Socket connection closed: ${event.reason}`); setSocket(null); // Set the socket to null after closing }
Ich erhalte immer das leere Ergebnis 1006 in event.reason und event.code
Wie richte ich Code und Inferenz richtig ein?
Ich benutze "github.com/gocarbon/fibre/v2" „github.com/go Fiber/websocket/v2“
Schreiben eine Abschlussnachricht Close()
, bevor Sie anrufen :
if room == nil { // Handle the case when the room does not exist log.Printf("Room %s does not exist", roomID) c.WriteControl(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, "room does not exist"), time.Now().Add(time.Second)) c.Close() return }
Das obige ist der detaillierte Inhalt vonSo legen Sie Statuscode und Grund in go Fiber/websocket/v2 fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!