diff --git a/business/partner/purchase/im/im_server.go b/business/partner/purchase/im/im_server.go index c13fff35b..f374354c8 100644 --- a/business/partner/purchase/im/im_server.go +++ b/business/partner/purchase/im/im_server.go @@ -32,8 +32,6 @@ func Init() { fmt.Printf("服务器启动成功,端口号:%s\n", CommonSetting.HttpPort) } -var upgrader = websocket.Upgrader{} - func StartWebSocket(conn *websocket.Conn, clientID string, err error) { //设置读取消息大小上线 diff --git a/controllers/im.go b/controllers/im.go index 52e871b45..2db20c12c 100644 --- a/controllers/im.go +++ b/controllers/im.go @@ -20,15 +20,21 @@ type IMController struct { // @Failure 200 {object} controllers.CallResult // @router /StartWebSocket [get] func (c *IMController) StartWebSocket() { - upgrader.CheckOrigin = func(r *http.Request) bool { - return true - } - ws, err := upgrader.Upgrade(c.Ctx.ResponseWriter, c.Ctx.Request, nil) + + ws, err := upgrader.Upgrade(c.Ctx.ResponseWriter, &http.Request{ + Method: "GET", + Header: http.Header{ + "Upgrade": []string{"websocket"}, + "Connection": []string{"upgrade"}, + "Sec-Websocket-Key": []string{"dGhlIHNhbXBsZSBub25jZQ=="}, + "Sec-Websocket-Version": []string{"13"}, + }}, nil) if err != nil { globals.SugarLogger.Errorf("upgrade error: %v", err) return } defer ws.Close() + clientID := c.GetString("clientID") globals.SugarLogger.Debugf("clientID=%s", clientID) im.StartWebSocket(ws, clientID, err)