1
This commit is contained in:
parent
f64b6e8a43
commit
7075dfb223
|
@ -70,7 +70,15 @@ 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, getCacheChanLenByLevel(4))
|
userConnPoolCtlChan = make(chan userConnPoolCtlChanItem, 500)
|
||||||
|
//每个websocket连接入口缓冲队列长度默认值
|
||||||
|
websocketInChanLen = 500
|
||||||
|
//每个websocket连接出口缓冲队列长度默认值
|
||||||
|
websocketOutChanLen = 500
|
||||||
|
//每个websocket连接渲染任务调度队列长度默认值(添加任务/删除任务/修改任务属性)缓冲队列长度(该队列用于避免map并发读写冲突)
|
||||||
|
renderImageTaskCtlChanLen = 100
|
||||||
|
//每个websocket渲染任务缓冲队列长度默认值
|
||||||
|
renderChanLen = 500
|
||||||
//是否开启debug
|
//是否开启debug
|
||||||
openDebug = true
|
openDebug = true
|
||||||
//允许跨域的origin
|
//允许跨域的origin
|
||||||
|
@ -180,8 +188,6 @@ 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,
|
||||||
|
@ -213,35 +219,6 @@ 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 10
|
|
||||||
case 2:
|
|
||||||
return 100
|
|
||||||
case 3:
|
|
||||||
return 500
|
|
||||||
case 4:
|
|
||||||
return 1000
|
|
||||||
default:
|
|
||||||
return 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 根据用户获取缓冲队列长度
|
|
||||||
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