From 1c7e3e42f82f7331321dfb5c223fa24af2b12cce Mon Sep 17 00:00:00 2001 From: yusing Date: Sun, 17 Aug 2025 20:23:57 +0800 Subject: [PATCH] refactor(websocket): simplify NewManagerWithUpgrade function to use context for custom upgrader --- internal/net/gphttp/websocket/manager.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/net/gphttp/websocket/manager.go b/internal/net/gphttp/websocket/manager.go index 24d53eef..15ce5cc1 100644 --- a/internal/net/gphttp/websocket/manager.go +++ b/internal/net/gphttp/websocket/manager.go @@ -73,12 +73,12 @@ const ( // NewManagerWithUpgrade upgrades the HTTP connection to a WebSocket connection and returns a Manager. // If the upgrade fails, the error is returned. // If the upgrade succeeds, the Manager is returned. -func NewManagerWithUpgrade(c *gin.Context, upgrader ...websocket.Upgrader) (*Manager, error) { - var actualUpgrader websocket.Upgrader - if len(upgrader) == 0 { - actualUpgrader = defaultUpgrader - } else { - actualUpgrader = upgrader[0] +// +// To use a custom upgrader, set the "upgrader" context value to the upgrader. +func NewManagerWithUpgrade(c *gin.Context) (*Manager, error) { + actualUpgrader := &defaultUpgrader + if upgrader, ok := c.Get("upgrader"); ok { + actualUpgrader = upgrader.(*websocket.Upgrader) } conn, err := actualUpgrader.Upgrade(c.Writer, c.Request, nil)