Home > Article > Backend Development > How to set status code and reason in go Fiber/websocket/v2
In Fiber/websocket/v2 of Go language, setting status code and reason is a common requirement. By setting the status code and reason, we can provide the client with detailed information about how the request was handled. In this article, we will show you how to easily set status codes and reasons in Fiber/websocket/v2. Whether you are a beginner or an experienced developer, this article will provide you with clear guidance and practical example code. Read on and let’s get started!
This is the front-end code, I use 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 }
This is the code for the backend. I use go Fiber and 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 } }))
I tried setting a custom return code and reason but it doesn't seem to work because
newSocket.onclose = (event) => { console.log(`Socket connection closed: ${event.reason}`); setSocket(null); // Set the socket to null after closing }
I always get empty results in event.reason and event.code 1006
How to set up code and inference correctly?
I am using "github.com/gocarbon/fibre/v2" "github.com/go Fiber/websocket/v2"
Write a before calling Close() Close message
:
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 }
The above is the detailed content of How to set status code and reason in go Fiber/websocket/v2. For more information, please follow other related articles on the PHP Chinese website!