fix
This commit is contained in:
parent
25ee551ae8
commit
a9d565aff9
|
@ -5,6 +5,7 @@ import (
|
|||
"bytes"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fusenapi/constants"
|
||||
"fusenapi/utils/auth"
|
||||
"fusenapi/utils/encryption_decryption"
|
||||
|
@ -138,8 +139,8 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request)
|
|||
|
||||
// 设置连接
|
||||
func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo auth.UserInfo, isFirefoxBrowser bool) (wsConnectItem, error) {
|
||||
//生成连接唯一标识
|
||||
uniqueId, err := l.getUniqueId(userInfo)
|
||||
//生成连接唯一标识(失败重试10次)
|
||||
uniqueId, err := l.getUniqueId(userInfo, 10)
|
||||
if err != nil {
|
||||
//发送获取唯一标识失败的消息
|
||||
l.sendGetUniqueIdErrResponse(conn)
|
||||
|
@ -170,11 +171,15 @@ func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo auth.User
|
|||
}
|
||||
|
||||
// 获取唯一id
|
||||
func (l *DataTransferLogic) getUniqueId(userInfo auth.UserInfo) (uniqueId string, err error) {
|
||||
func (l *DataTransferLogic) getUniqueId(userInfo auth.UserInfo, retryTimes int) (uniqueId string, err error) {
|
||||
if retryTimes < 0 {
|
||||
return "", errors.New("failed to get unique id")
|
||||
}
|
||||
//后面拼接上用户id
|
||||
uniqueId = hex.EncodeToString([]byte(uuid.New().String())) + getUserJoinPart(userInfo.UserId, userInfo.GuestId)
|
||||
//存在则从新获取
|
||||
if _, ok := mapConnPool.Load(uniqueId); ok {
|
||||
uniqueId, err = l.getUniqueId(userInfo)
|
||||
uniqueId, err = l.getUniqueId(userInfo, retryTimes-1)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user