1
This commit is contained in:
parent
a1f170b1ff
commit
cd108c6055
|
@ -70,15 +70,7 @@ var (
|
|||
//用户标识的连接(白板用户不存)
|
||||
mapUserConnPool = make(map[string]map[string]struct{}) //key是user_id +"_"+guest_id (val是个普通map,存储这个用户的所有连接标识)
|
||||
//用户标识的连接增删操作队列
|
||||
userConnPoolCtlChan = make(chan userConnPoolCtlChanItem, 2000)
|
||||
//每个websocket连接入口缓冲队列长度
|
||||
websocketInChanLen = 1000
|
||||
//每个websocket连接出口缓冲队列长度
|
||||
websocketOutChanLen = 1000
|
||||
//渲染任务调度(添加任务/删除任务/修改任务属性)缓冲队列长度(该队列用于避免map并发读写冲突)
|
||||
renderImageTaskCtlChanLen = 500
|
||||
//渲染任务缓冲队列长度
|
||||
renderChanLen = 500
|
||||
userConnPoolCtlChan = make(chan userConnPoolCtlChanItem, getCacheChanLenByLevel(4))
|
||||
//是否开启debug
|
||||
openDebug = true
|
||||
//允许跨域的origin
|
||||
|
@ -188,6 +180,8 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo *auth.Use
|
|||
l.sendGetUniqueIdErrResponse(conn)
|
||||
return wsConnectItem{}, err
|
||||
}
|
||||
//根据不同用户获取不同缓冲队列长度
|
||||
websocketInChanLen, websocketOutChanLen, renderImageTaskCtlChanLen, renderChanLen := getCacheChanLenByUser(userInfo.UserId, userInfo.GuestId)
|
||||
ws := wsConnectItem{
|
||||
conn: conn,
|
||||
userAgent: userAgent,
|
||||
|
@ -219,6 +213,35 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo *auth.Use
|
|||
return ws, nil
|
||||
}
|
||||
|
||||
// 根据level获取缓冲队列长度
|
||||
func getCacheChanLenByLevel(level int) int {
|
||||
switch level {
|
||||
case 1:
|
||||
return 50
|
||||
case 2:
|
||||
return 100
|
||||
case 3:
|
||||
return 500
|
||||
case 4:
|
||||
return 1000
|
||||
default:
|
||||
return 50
|
||||
}
|
||||
}
|
||||
|
||||
// 根据用户获取缓冲队列长度
|
||||
func getCacheChanLenByUser(userId, guestId int64) (websocketInChanLen, websocketOutChanLen, renderImageTaskCtlChanLen, renderChanLen int) {
|
||||
var l int
|
||||
if userId > 0 {
|
||||
l = getCacheChanLenByLevel(3)
|
||||
} else if guestId > 0 {
|
||||
l = getCacheChanLenByLevel(2)
|
||||
} else {
|
||||
l = getCacheChanLenByLevel(2)
|
||||
}
|
||||
return l, l, l, l
|
||||
}
|
||||
|
||||
// 添加用户索引池ws连接
|
||||
func createUserConnPoolElement(userId, guestId int64, uniqueId string) {
|
||||
data := userConnPoolCtlChanItem{
|
||||
|
|
Loading…
Reference in New Issue
Block a user