ws support same terminal login

This commit is contained in:
Gordon 2023-03-02 19:36:48 +08:00
parent c8038213c7
commit c182001fcf

View File

@ -344,7 +344,7 @@ func (ws *WServer) addUserConn(uid string, platformID int, conn *UserConn, token
conns = append(conns, conn) conns = append(conns, conn)
oldConnMap[platformID] = conns oldConnMap[platformID] = conns
} else { } else {
conns := make([]*UserConn, 2) var conns []*UserConn
conns = append(conns, conn) conns = append(conns, conn)
oldConnMap[platformID] = conns oldConnMap[platformID] = conns
} }
@ -352,7 +352,7 @@ func (ws *WServer) addUserConn(uid string, platformID int, conn *UserConn, token
log.Debug(operationID, "user not first come in, add conn ", uid, platformID, conn, oldConnMap) log.Debug(operationID, "user not first come in, add conn ", uid, platformID, conn, oldConnMap)
} else { } else {
i := make(map[int][]*UserConn) i := make(map[int][]*UserConn)
conns := make([]*UserConn, 1) var conns []*UserConn
conns = append(conns, conn) conns = append(conns, conn)
i[platformID] = conns i[platformID] = conns
ws.wsUserToConn[uid] = i ws.wsUserToConn[uid] = i
@ -374,15 +374,16 @@ func (ws *WServer) delUserConn(conn *UserConn) {
if oldConnMap, ok := ws.wsUserToConn[conn.userID]; ok { // only recycle self conn if oldConnMap, ok := ws.wsUserToConn[conn.userID]; ok { // only recycle self conn
if oldconns, okMap := oldConnMap[platform]; okMap { if oldconns, okMap := oldConnMap[platform]; okMap {
var flag bool
a := make([]*UserConn, 2) var a []*UserConn
for _, client := range oldconns { for _, client := range oldconns {
if client != conn { if client != conn {
a = append(a, client) a = append(a, client)
flag = true
} }
} }
if flag { if len(a) != 0 {
oldConnMap[platform] = a oldConnMap[platform] = a
} else { } else {
delete(oldConnMap, platform) delete(oldConnMap, platform)