Merge branch 'develop' of gitee.com:fusenpack/fusenapi into develop
This commit is contained in:
		
						commit
						7573f9ccf6
					
				@ -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,
 | 
			
		||||
@ -192,7 +193,9 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo *auth.Use
 | 
			
		||||
		userId:    userInfo.UserId,
 | 
			
		||||
		guestId:   userInfo.GuestId,
 | 
			
		||||
		extendRenderProperty: extendRenderProperty{
 | 
			
		||||
			renderChan: make(chan websocket_data.RenderImageReqMsg, renderChanLen),
 | 
			
		||||
			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"
 | 
			
		||||
@ -32,7 +33,11 @@ type renderProcessor struct {
 | 
			
		||||
 | 
			
		||||
// 云渲染属性
 | 
			
		||||
type extendRenderProperty struct {
 | 
			
		||||
	renderChan chan websocket_data.RenderImageReqMsg //渲染消息入口的缓冲队列
 | 
			
		||||
	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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user