如何在 go Fiber/websocket/v2 中設定狀態碼和原因
在Go語言的Fiber/websocket/v2中,設定狀態碼和原因是一個常見的需求。透過設定狀態代碼和原因,我們可以向客戶端提供有關請求處理情況的詳細資訊。在本文中,我們將向您展示如何在Fiber/websocket/v2中輕鬆設定狀態碼和原因。無論您是初學者還是有經驗的開發者,本文都將為您提供清晰的指導和實用的範例程式碼。繼續閱讀,讓我們開始吧!
問題內容
這是前端程式碼,我使用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 }
這是後端的程式碼。我使用 go Fiber 和 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 } }))
我嘗試設定自訂回傳程式碼和原因,但似乎不起作用,因為
newSocket.onclose = (event) => { console.log(`Socket connection closed: ${event.reason}`); setSocket(null); // Set the socket to null after closing }
我在 event.reason 和 event.code 中始終得到空結果 1006
如何正確設定程式碼和推理?
我正在使用 “github.com/gocarbon/fibre/v2” “github.com/go Fiber/websocket/v2”
解決方法
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 }
以上是如何在 go Fiber/websocket/v2 中設定狀態碼和原因的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Go語言中用於浮點數運算的庫介紹在Go語言(也稱為Golang)中,進行浮點數的加減乘除運算時,如何確保精度是�...

Go爬蟲Colly中的Queue線程問題探討在使用Go語言的Colly爬蟲庫時,開發者常常會遇到關於線程和請求隊列的問題。 �...

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

Go語言中字符串打印的區別:使用Println與string()函數的效果差異在Go...

Go語言中結構體定義的兩種方式:var與type關鍵字的差異Go語言在定義結構體時,經常會看到兩種不同的寫法:一�...

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...

Go編程中的資源管理:Mysql和Redis的連接與釋放在學習Go編程過程中,如何正確管理資源,特別是與數據庫和緩存�...
