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