refactor(websocket): simplify NewManagerWithUpgrade function to use context for custom upgrader

This commit is contained in:
yusing
2025-08-17 20:23:57 +08:00
parent beb1913285
commit 1c7e3e42f8

View File

@@ -73,12 +73,12 @@ const (
// NewManagerWithUpgrade upgrades the HTTP connection to a WebSocket connection and returns a Manager. // NewManagerWithUpgrade upgrades the HTTP connection to a WebSocket connection and returns a Manager.
// If the upgrade fails, the error is returned. // If the upgrade fails, the error is returned.
// If the upgrade succeeds, the Manager is returned. // If the upgrade succeeds, the Manager is returned.
func NewManagerWithUpgrade(c *gin.Context, upgrader ...websocket.Upgrader) (*Manager, error) { //
var actualUpgrader websocket.Upgrader // To use a custom upgrader, set the "upgrader" context value to the upgrader.
if len(upgrader) == 0 { func NewManagerWithUpgrade(c *gin.Context) (*Manager, error) {
actualUpgrader = defaultUpgrader actualUpgrader := &defaultUpgrader
} else { if upgrader, ok := c.Get("upgrader"); ok {
actualUpgrader = upgrader[0] actualUpgrader = upgrader.(*websocket.Upgrader)
} }
conn, err := actualUpgrader.Upgrade(c.Writer, c.Request, nil) conn, err := actualUpgrader.Upgrade(c.Writer, c.Request, nil)