फाइबर वेबसॉकेट उदाहरण
फाइबर के Fasthttp वेबसॉकेट कॉम्पोनेंट के आधार पर, *fiber.Ctx
मेथड का उपयोग किया जाता है, जैसे Locals, Params, Query, और Cookies. यहां फाइबर में वेबसॉकेट का उपयोग करने का एक उदाहरण है।
नोट: Go संस्करण 1.18 और ऊपर की आवश्यकता है।
स्थापना
go get -u github.com/gofiber/fiber/v2
go get -u github.com/gofiber/contrib/websocket
फ़ंक्शन हस्ताक्षर
func New(handler func(*websocket.Conn), config ...websocket.Config) fiber.Handler {
विन्यास
गुणवत्ता | प्रकार | विवरण | डिफ़ॉल्ट मान |
---|---|---|---|
Filter | func(*fiber.Ctx) bool |
मिडलवेयर को छोड़ने के लिए एक फ़ंक्शन को परिभाषित करता है। | nil |
HandshakeTimeout | time.Duration |
HandshakeTimeout कैसा समय लेने के लिए निर्धारित करता है। | 0 (कोई समय सीमा नहीं) |
Subprotocols | []string |
Subprotocols निर्धारित करता है कि क्लाइंट द्वारा अनुरोधित सबप्रोटोकॉल्स। | nil |
Origins | []string |
उपदेशित मूलों पर आधारित शानदार मूल। रिक्त होने पर, यह किसी भी मूल को स्वीकार करता है। | nil |
ReadBufferSize | int |
ReadBufferSize संदेशों को प्राप्त करने के लिए I/O बफर का आकार निर्धारित करता है (बाइट में)। | 0 (डिफ़ॉल्ट आकार) |
WriteBufferSize | int |
WriteBufferSize संदेशों को भेजने के लिए I/O बफर का आकार निर्धारित करता है (बाइट में)। | 0 (डिफ़ॉल्ट आकार) |
WriteBufferPool | websocket.BufferPool |
WriteBufferPool लिखने के लिए उपयोग किए जाने वाले बफर पूल है। | nil |
EnableCompression | bool |
EnableCompression यह निर्धारित करता है कि क्या क्लाइंट हर संदेश के लिए संपीड़न समझौता करें (RFC 7692)। | false |
RecoverHandler | func(*websocket.Conn) void |
RecoverHandler एक पैनिक से पुन: प्राप्ति के लिए एक हैंडलिंग फ़ंक्शन है। | defaultRecover |
उदाहरण
package main
import (
"log"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/contrib/websocket"
)
func main() {
app := fiber.New()
app.Use("/ws", func(c *fiber.Ctx) error {
// अगर क्लाइंट ने वेबसॉकेट प्रोटोकॉल को अपग्र
## पुनर्प्राप्ति मिडलवेयर का उपयोग के लिए विचार
आंतरिक कारणों के चलते, पुनर्प्राप्ति मिडलवेयर वर्तमान में वेबसॉकेट मिडलवेयर के साथ अनुपालनीय नहीं है। कृपया वेबसॉकेट अंत-स्थलों के लिए एक पुनर्प्राप्ति हैंडलर जोड़ने के लिए `config.RecoverHandler` का उपयोग करें। डिफ़ॉल्ट रूप में, `RecoverHandler` विनाश से पुनर्प्राप्ति करता है, स्टैक ट्रेस को stderr पर लिखता है, और पैनिक संदेश को **त्रुटि** फ़ील्ड में शामिल करता है।
```go
app := fiber.New()
app.Use(cache.New(cache.Config{
Next: func(c *fiber.Ctx) bool {
return strings.Contains(c.Route().Path, "/ws")
},
}))
cfg := Config{
RecoverHandler: func(conn *Conn) {
if err := recover(); err != nil {
conn.WriteJSON(fiber.Map{"customError": "त्रुटि हुई"})
}
},
}
app.Get("/ws/:id", websocket.New(func(c *websocket.Conn) {}, cfg))