This commit is contained in:
laodaming 2023-08-24 14:11:17 +08:00
parent 57c61e5921
commit 6c3344b127
2 changed files with 1 additions and 11 deletions

View File

@ -64,8 +64,6 @@ var (
}
//websocket连接存储
mapConnPool = sync.Map{}
//公共互斥锁(复用连接标识用)
publicMutex sync.Mutex
)
// 每个连接的连接基本属性
@ -140,8 +138,6 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request)
// 设置连接
func (l *DataTransferLogic) setConnPool(conn *websocket.Conn, userInfo auth.UserInfo, isFirefoxBrowser bool) (wsConnectItem, error) {
publicMutex.Lock()
defer publicMutex.Unlock()
//生成连接唯一标识
uniqueId, err := l.getUniqueId(userInfo)
if err != nil {

View File

@ -37,20 +37,14 @@ func (w *wsConnectItem) reuseLastConnect(data []byte) {
w.sendToOutChan(w.respondDataFormat(constants.WEBSOCKET_REQUEST_RESUME_LAST_CONNECT_ERR, "the client id is not belong you before"))
return
}
publicMutex.Lock()
defer publicMutex.Unlock()
//存在是不能给他申请重新绑定
if v, ok := mapConnPool.Load(clientId); ok {
obj, ok := v.(wsConnectItem)
if !ok {
logx.Error("连接断言失败")
}
//是当前自己占用
//是当前自己占用(无需处理)
if obj.uniqueId == w.uniqueId {
//重新绑定
w.uniqueId = clientId
rsp := w.respondDataFormat(constants.WEBSOCKET_CONNECT_SUCCESS, clientId)
w.sendToOutChan(rsp)
return
} else {
rsp := w.respondDataFormat(constants.WEBSOCKET_REQUEST_RESUME_LAST_CONNECT_ERR, "id has bound by other connect ")