fix
This commit is contained in:
parent
fbeebabf27
commit
06ab4a596f
|
@ -179,6 +179,7 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo *auth.Use
|
|||
l.sendGetUniqueIdErrResponse(conn)
|
||||
return wsConnectItem{}, err
|
||||
}
|
||||
renderCtx, renderCtxCancelFunc := context.WithCancel(l.ctx)
|
||||
ws := wsConnectItem{
|
||||
conn: conn,
|
||||
userAgent: userAgent,
|
||||
|
@ -193,6 +194,8 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo *auth.Use
|
|||
guestId: userInfo.GuestId,
|
||||
extendRenderProperty: extendRenderProperty{
|
||||
renderChan: make(chan websocket_data.RenderImageReqMsg, renderChanLen),
|
||||
renderCtx: renderCtx,
|
||||
renderCtxCancelFunc: renderCtxCancelFunc,
|
||||
},
|
||||
}
|
||||
//保存连接
|
||||
|
|
|
@ -3,6 +3,7 @@ package logic
|
|||
//处理websocket云渲染任务数据
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
@ -33,6 +34,10 @@ type renderProcessor struct {
|
|||
// 云渲染属性
|
||||
type extendRenderProperty struct {
|
||||
renderChan chan websocket_data.RenderImageReqMsg //渲染消息入口的缓冲队列
|
||||
renderCtx context.Context //渲染控制上下文(用于切换模板标签/颜色取消之前发送的不相同的任务)
|
||||
renderCtxCancelFunc context.CancelFunc //渲染控制上下文取消方法
|
||||
selectColorIndex int //选择的颜色索引
|
||||
templateTag string //模板标签
|
||||
}
|
||||
|
||||
// 处理分发到这里的数据
|
||||
|
@ -44,6 +49,16 @@ func (r *renderProcessor) allocationMessage(w *wsConnectItem, data []byte) {
|
|||
logx.Error("invalid format of websocket render image message", err)
|
||||
return
|
||||
}
|
||||
if renderImageData.RenderData.TemplateTag != w.extendRenderProperty.templateTag || renderImageData.RenderData.TemplateTagColor.SelectedColorIndex != w.extendRenderProperty.selectColorIndex {
|
||||
//赋值
|
||||
w.extendRenderProperty.templateTag = renderImageData.RenderData.TemplateTag
|
||||
w.extendRenderProperty.selectColorIndex = renderImageData.RenderData.TemplateTagColor.SelectedColorIndex
|
||||
//让之前的失效
|
||||
w.extendRenderProperty.renderCtxCancelFunc()
|
||||
logx.Info("模板标签/颜色更换上下文取消")
|
||||
//重新赋值
|
||||
w.extendRenderProperty.renderCtx, w.extendRenderProperty.renderCtxCancelFunc = context.WithCancel(w.logic.ctx)
|
||||
}
|
||||
select {
|
||||
case <-w.closeChan: //已经关闭
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue
Block a user