Merge branch 'develop' of gitee.com:fusenpack/fusenapi into develop

This commit is contained in:
Hiven 2023-08-18 16:47:33 +08:00
commit 7807033c1a
2 changed files with 13 additions and 8 deletions

View File

@ -114,6 +114,7 @@ func (l *GetTemplateByPidLogic) GetTemplateByPid(req *types.GetTemplateByPidReq,
rsp[mapKey] = map[string]interface{}{ rsp[mapKey] = map[string]interface{}{
"id": templateInfo.Id, "id": templateInfo.Id,
"material": *templateInfo.MaterialImg, "material": *templateInfo.MaterialImg,
//写死的数据
"material_data": map[string]interface{}{ "material_data": map[string]interface{}{
"QRcode": map[string]interface{}{ "QRcode": map[string]interface{}{
"if_show": true, "if_show": true,

View File

@ -79,7 +79,12 @@ type wsConnectItem struct {
renderProperty renderProperty //扩展云渲染属性 renderProperty renderProperty //扩展云渲染属性
} }
// 请求建立连接升级websocket协议
func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) { 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")}
//升级websocket //升级websocket
conn, err := upgrade.Upgrade(w, r, nil) conn, err := upgrade.Upgrade(w, r, nil)
if err != nil { if err != nil {
@ -88,13 +93,13 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request)
} }
defer conn.Close() defer conn.Close()
//鉴权不成功后断开 //鉴权不成功后断开
/*var ( var (
userInfo *auth.UserInfo userInfo *auth.UserInfo
isAuth bool isAuth bool
) )
isAuth, userInfo = l.checkAuth(r) isAuth, userInfo = l.checkAuth(r)
if !isAuth { if !isAuth {
time.Sleep(time.Second * 1) //兼容下火狐 time.Sleep(time.Second * 1) //兼容下火狐(直接发回去收不到第一条消息:有待研究)
rsp := websocket_data.DataTransferData{ rsp := websocket_data.DataTransferData{
T: constants.WEBSOCKET_UNAUTH, T: constants.WEBSOCKET_UNAUTH,
D: nil, D: nil,
@ -105,12 +110,9 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request)
//发送关闭信息 //发送关闭信息
_ = conn.WriteMessage(websocket.CloseMessage, nil) _ = conn.WriteMessage(websocket.CloseMessage, nil)
return return
}*/ }
// todo user信息是没有的
var userInfo auth.UserInfo
userInfo.UserId = 39
//设置连接 //设置连接
ws := l.setConnPool(conn, userInfo) ws := l.setConnPool(conn, *userInfo)
defer ws.close() defer ws.close()
//循环读客户端信息 //循环读客户端信息
go ws.readLoop() go ws.readLoop()
@ -151,7 +153,7 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo auth.User
mapConnPool.Store(uniqueId, ws) mapConnPool.Store(uniqueId, ws)
go func() { go func() {
//把连接成功消息发回去 //把连接成功消息发回去
time.Sleep(time.Second * 1) //兼容下火狐 time.Sleep(time.Second * 1) //兼容下火狐(直接发回去收不到第一条消息:有待研究)
ws.sendToOutChan(ws.respondDataFormat(constants.WEBSOCKET_CONNECT_SUCCESS, uniqueId)) ws.sendToOutChan(ws.respondDataFormat(constants.WEBSOCKET_CONNECT_SUCCESS, uniqueId))
}() }()
return ws return ws
@ -178,6 +180,7 @@ func (l *DataTransferLogic) checkAuth(r *http.Request) (isAuth bool, userInfo *a
claims, err := l.svcCtx.ParseJwtToken(r) claims, err := l.svcCtx.ParseJwtToken(r)
// 如果解析JWT token出错,则返回未授权的JSON响应并记录错误消息 // 如果解析JWT token出错,则返回未授权的JSON响应并记录错误消息
if err != nil { if err != nil {
logx.Error(err)
return false, nil return false, nil
} }
if claims != nil { if claims != nil {
@ -185,6 +188,7 @@ func (l *DataTransferLogic) checkAuth(r *http.Request) (isAuth bool, userInfo *a
userInfo, err = auth.GetUserInfoFormMapClaims(claims) userInfo, err = auth.GetUserInfoFormMapClaims(claims)
// 如果获取用户信息出错,则返回未授权的JSON响应并记录错误消息 // 如果获取用户信息出错,则返回未授权的JSON响应并记录错误消息
if err != nil { if err != nil {
logx.Error(err)
return false, nil return false, nil
} }
//不是登录用户也不是游客 //不是登录用户也不是游客