From 868f9a4192f485d1cfb35e15d7ec5e9e6178e775 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Fri, 18 Aug 2023 14:57:21 +0800 Subject: [PATCH 1/8] fix --- server/product/internal/logic/gettemplatebypidlogic.go | 1 + 1 file changed, 1 insertion(+) diff --git a/server/product/internal/logic/gettemplatebypidlogic.go b/server/product/internal/logic/gettemplatebypidlogic.go index b15b7d3b..a96152e2 100644 --- a/server/product/internal/logic/gettemplatebypidlogic.go +++ b/server/product/internal/logic/gettemplatebypidlogic.go @@ -114,6 +114,7 @@ func (l *GetTemplateByPidLogic) GetTemplateByPid(req *types.GetTemplateByPidReq, rsp[mapKey] = map[string]interface{}{ "id": templateInfo.Id, "material": *templateInfo.MaterialImg, + //写死的数据 "material_data": map[string]interface{}{ "QRcode": map[string]interface{}{ "if_show": true, From 4060b5775bda1a170e67eb5ff618a83d68c70c86 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Fri, 18 Aug 2023 14:59:23 +0800 Subject: [PATCH 2/8] fix --- server/websocket/internal/logic/datatransferlogic.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/websocket/internal/logic/datatransferlogic.go b/server/websocket/internal/logic/datatransferlogic.go index fada3747..e216707f 100644 --- a/server/websocket/internal/logic/datatransferlogic.go +++ b/server/websocket/internal/logic/datatransferlogic.go @@ -94,7 +94,7 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) ) isAuth, userInfo = l.checkAuth(r) if !isAuth { - time.Sleep(time.Second * 1) //兼容下火狐 + //time.Sleep(time.Second * 1) //兼容下火狐 rsp := websocket_data.DataTransferData{ T: constants.WEBSOCKET_UNAUTH, D: nil, @@ -151,7 +151,7 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo auth.User mapConnPool.Store(uniqueId, ws) go func() { //把连接成功消息发回去 - time.Sleep(time.Second * 1) //兼容下火狐 + //time.Sleep(time.Second * 1) //兼容下火狐 ws.sendToOutChan(ws.respondDataFormat(constants.WEBSOCKET_CONNECT_SUCCESS, uniqueId)) }() return ws From a19d526e727f2ea5153bf84a71902cb97d17699e Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Fri, 18 Aug 2023 15:02:08 +0800 Subject: [PATCH 3/8] fix --- server/websocket/internal/logic/datatransferlogic.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/websocket/internal/logic/datatransferlogic.go b/server/websocket/internal/logic/datatransferlogic.go index e216707f..fada3747 100644 --- a/server/websocket/internal/logic/datatransferlogic.go +++ b/server/websocket/internal/logic/datatransferlogic.go @@ -94,7 +94,7 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) ) isAuth, userInfo = l.checkAuth(r) if !isAuth { - //time.Sleep(time.Second * 1) //兼容下火狐 + time.Sleep(time.Second * 1) //兼容下火狐 rsp := websocket_data.DataTransferData{ T: constants.WEBSOCKET_UNAUTH, D: nil, @@ -151,7 +151,7 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo auth.User mapConnPool.Store(uniqueId, ws) go func() { //把连接成功消息发回去 - //time.Sleep(time.Second * 1) //兼容下火狐 + time.Sleep(time.Second * 1) //兼容下火狐 ws.sendToOutChan(ws.respondDataFormat(constants.WEBSOCKET_CONNECT_SUCCESS, uniqueId)) }() return ws From 04982bae1835903d2c92ce5292370ea2a23536e2 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Fri, 18 Aug 2023 16:03:29 +0800 Subject: [PATCH 4/8] fix --- .../websocket/internal/logic/datatransferlogic.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/server/websocket/internal/logic/datatransferlogic.go b/server/websocket/internal/logic/datatransferlogic.go index fada3747..1999b62e 100644 --- a/server/websocket/internal/logic/datatransferlogic.go +++ b/server/websocket/internal/logic/datatransferlogic.go @@ -80,6 +80,9 @@ type wsConnectItem struct { } func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) { + token := r.Header.Get("Sec-Websocket-Protocol") + //设置Sec-Websocket-Protocol + upgrade.Subprotocols = []string{token} //升级websocket conn, err := upgrade.Upgrade(w, r, nil) if err != nil { @@ -88,10 +91,11 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) } defer conn.Close() //鉴权不成功后断开 - /*var ( + var ( userInfo *auth.UserInfo isAuth bool ) + fmt.Println("###################:", r.Header) isAuth, userInfo = l.checkAuth(r) if !isAuth { time.Sleep(time.Second * 1) //兼容下火狐 @@ -105,12 +109,12 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) //发送关闭信息 _ = conn.WriteMessage(websocket.CloseMessage, nil) return - }*/ + } // todo user信息是没有的 - var userInfo auth.UserInfo - userInfo.UserId = 39 + /*var userInfo auth.UserInfo + userInfo.UserId = 39*/ //设置连接 - ws := l.setConnPool(conn, userInfo) + ws := l.setConnPool(conn, *userInfo) defer ws.close() //循环读客户端信息 go ws.readLoop() From b8ca7360b1b7098ef3b83f568a3d1f237c38990d Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Fri, 18 Aug 2023 16:15:44 +0800 Subject: [PATCH 5/8] fix --- server/websocket/internal/logic/datatransferlogic.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/websocket/internal/logic/datatransferlogic.go b/server/websocket/internal/logic/datatransferlogic.go index 1999b62e..bbba31df 100644 --- a/server/websocket/internal/logic/datatransferlogic.go +++ b/server/websocket/internal/logic/datatransferlogic.go @@ -80,9 +80,9 @@ type wsConnectItem struct { } func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) { - token := r.Header.Get("Sec-Websocket-Protocol") + r.Header.Set("Authorization", "Bearer "+r.Header.Get("Sec-Websocket-Protocol")) //设置Sec-Websocket-Protocol - upgrade.Subprotocols = []string{token} + upgrade.Subprotocols = []string{r.Header.Get("Sec-Websocket-Protocol")} //升级websocket conn, err := upgrade.Upgrade(w, r, nil) if err != nil { @@ -95,7 +95,6 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) userInfo *auth.UserInfo isAuth bool ) - fmt.Println("###################:", r.Header) isAuth, userInfo = l.checkAuth(r) if !isAuth { time.Sleep(time.Second * 1) //兼容下火狐 @@ -182,6 +181,7 @@ func (l *DataTransferLogic) checkAuth(r *http.Request) (isAuth bool, userInfo *a claims, err := l.svcCtx.ParseJwtToken(r) // 如果解析JWT token出错,则返回未授权的JSON响应并记录错误消息 if err != nil { + logx.Error(err) return false, nil } if claims != nil { @@ -189,6 +189,7 @@ func (l *DataTransferLogic) checkAuth(r *http.Request) (isAuth bool, userInfo *a userInfo, err = auth.GetUserInfoFormMapClaims(claims) // 如果获取用户信息出错,则返回未授权的JSON响应并记录错误消息 if err != nil { + logx.Error(err) return false, nil } //不是登录用户也不是游客 From 62afaeda0772b3caba7a721d147f3514241ac0cd Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Fri, 18 Aug 2023 16:20:45 +0800 Subject: [PATCH 6/8] fix --- server/websocket/internal/logic/datatransferlogic.go | 1 + 1 file changed, 1 insertion(+) diff --git a/server/websocket/internal/logic/datatransferlogic.go b/server/websocket/internal/logic/datatransferlogic.go index bbba31df..3cdd02ba 100644 --- a/server/websocket/internal/logic/datatransferlogic.go +++ b/server/websocket/internal/logic/datatransferlogic.go @@ -80,6 +80,7 @@ type wsConnectItem struct { } func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) { + //把子协议携带的token设置到标准token头信息中 r.Header.Set("Authorization", "Bearer "+r.Header.Get("Sec-Websocket-Protocol")) //设置Sec-Websocket-Protocol upgrade.Subprotocols = []string{r.Header.Get("Sec-Websocket-Protocol")} From 2d498a06a0ea797fef76fb611987191bfd517934 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Fri, 18 Aug 2023 16:21:45 +0800 Subject: [PATCH 7/8] fix --- server/websocket/internal/logic/datatransferlogic.go | 1 + 1 file changed, 1 insertion(+) diff --git a/server/websocket/internal/logic/datatransferlogic.go b/server/websocket/internal/logic/datatransferlogic.go index 3cdd02ba..876a789a 100644 --- a/server/websocket/internal/logic/datatransferlogic.go +++ b/server/websocket/internal/logic/datatransferlogic.go @@ -79,6 +79,7 @@ type wsConnectItem struct { renderProperty renderProperty //扩展云渲染属性 } +// 请求建立连接,升级websocket协议 func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) { //把子协议携带的token设置到标准token头信息中 r.Header.Set("Authorization", "Bearer "+r.Header.Get("Sec-Websocket-Protocol")) From 1309473d7b2f6de488a9a684ceaec5d9375b5bcf Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Fri, 18 Aug 2023 16:23:04 +0800 Subject: [PATCH 8/8] fix --- server/websocket/internal/logic/datatransferlogic.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/server/websocket/internal/logic/datatransferlogic.go b/server/websocket/internal/logic/datatransferlogic.go index 876a789a..d3725a5b 100644 --- a/server/websocket/internal/logic/datatransferlogic.go +++ b/server/websocket/internal/logic/datatransferlogic.go @@ -99,7 +99,7 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) ) isAuth, userInfo = l.checkAuth(r) if !isAuth { - time.Sleep(time.Second * 1) //兼容下火狐 + time.Sleep(time.Second * 1) //兼容下火狐(直接发回去收不到第一条消息:有待研究) rsp := websocket_data.DataTransferData{ T: constants.WEBSOCKET_UNAUTH, D: nil, @@ -111,9 +111,6 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) _ = conn.WriteMessage(websocket.CloseMessage, nil) return } - // todo user信息是没有的 - /*var userInfo auth.UserInfo - userInfo.UserId = 39*/ //设置连接 ws := l.setConnPool(conn, *userInfo) defer ws.close() @@ -156,7 +153,7 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo auth.User mapConnPool.Store(uniqueId, ws) go func() { //把连接成功消息发回去 - time.Sleep(time.Second * 1) //兼容下火狐 + time.Sleep(time.Second * 1) //兼容下火狐(直接发回去收不到第一条消息:有待研究) ws.sendToOutChan(ws.respondDataFormat(constants.WEBSOCKET_CONNECT_SUCCESS, uniqueId)) }() return ws