Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menetapkan kod status dan sebab dalam go Fiber/websocket/v2
Dalam Fiber/websocket/v2 bahasa Go, menetapkan kod status dan sebab adalah keperluan biasa. Dengan menetapkan kod status dan sebab, kami boleh memberikan pelanggan maklumat terperinci tentang cara permintaan itu dikendalikan. Dalam artikel ini, kami akan menunjukkan kepada anda cara mudah menetapkan kod status dan sebab dalam Fiber/websocket/v2. Sama ada anda seorang pemula atau pembangun berpengalaman, artikel ini akan memberikan anda panduan yang jelas dan kod contoh praktikal. Baca dan mari mulakan!
Ini adalah kod bahagian hadapan, saya menggunakan 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 }
Ini ialah kod untuk bahagian belakang. Saya menggunakan go Fiber dan 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 } }))
Saya cuba menetapkan kod pulangan tersuai dan alasan tetapi ia nampaknya tidak berkesan kerana
newSocket.onclose = (event) => { console.log(`Socket connection closed: ${event.reason}`); setSocket(null); // Set the socket to null after closing }
Saya sentiasa mendapat keputusan kosong 1006 dalam event.reason dan event.code
Bagaimana untuk menyediakan kod dan inferens dengan betul?
Saya sedang menggunakan "github.com/gocarbon/fibre/v2" "github.com/go Fiber/websocket/v2"
Tulis mesej tutup Close()
sebelum membuat panggilan :
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 }
Atas ialah kandungan terperinci Bagaimana untuk menetapkan kod status dan sebab dalam go Fiber/websocket/v2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!