|
@@ -69,10 +69,7 @@ func (manager *ConnectionManager) GetSessionId(userId int, sessionId string) (se
|
|
|
|
|
|
// RemoveSession Remove 移除一个会话
|
|
// RemoveSession Remove 移除一个会话
|
|
func (manager *ConnectionManager) RemoveSession(sessionCode string) {
|
|
func (manager *ConnectionManager) RemoveSession(sessionCode string) {
|
|
- if data, ok := manager.Sessions.LoadAndDelete(sessionCode); ok {
|
|
|
|
- session := data.(*Session)
|
|
|
|
- session.Close()
|
|
|
|
- }
|
|
|
|
|
|
+ manager.Sessions.Delete(sessionCode)
|
|
}
|
|
}
|
|
|
|
|
|
// GetSession 获取一个会话
|
|
// GetSession 获取一个会话
|
|
@@ -95,8 +92,8 @@ func (manager *ConnectionManager) CheckAll() {
|
|
if time.Since(session.LastActive) > connectionTimeout {
|
|
if time.Since(session.LastActive) > connectionTimeout {
|
|
fmt.Printf("连接超时关闭: SessionID=%s, UserID=%s", session.Id, session.UserId)
|
|
fmt.Printf("连接超时关闭: SessionID=%s, UserID=%s", session.Id, session.UserId)
|
|
utils.FileLog.Warn("连接超时关闭: SessionID=%s, UserID=%s", session.Id, session.UserId)
|
|
utils.FileLog.Warn("连接超时关闭: SessionID=%s, UserID=%s", session.Id, session.UserId)
|
|
- _ = session.Conn.Close()
|
|
|
|
session.Close()
|
|
session.Close()
|
|
|
|
+ manager.RemoveSession(session.Id)
|
|
return true
|
|
return true
|
|
}
|
|
}
|
|
// 发送心跳
|
|
// 发送心跳
|
|
@@ -108,9 +105,8 @@ func (manager *ConnectionManager) CheckAll() {
|
|
fmt.Printf("心跳发送失败: SessionID=%s, Error=%v", s.Id, err)
|
|
fmt.Printf("心跳发送失败: SessionID=%s, Error=%v", s.Id, err)
|
|
utils.FileLog.Warn("心跳发送失败: SessionID=%s, Error=%v",
|
|
utils.FileLog.Warn("心跳发送失败: SessionID=%s, Error=%v",
|
|
s.Id, err)
|
|
s.Id, err)
|
|
- _ = s.Conn.Close()
|
|
|
|
session.Close()
|
|
session.Close()
|
|
- manager.Sessions.Delete(session.Id)
|
|
|
|
|
|
+ manager.RemoveSession(s.Id)
|
|
}
|
|
}
|
|
}(session)
|
|
}(session)
|
|
return true
|
|
return true
|
|
@@ -136,10 +132,3 @@ func (manager *ConnectionManager) Start() {
|
|
func (manager *ConnectionManager) Stop() {
|
|
func (manager *ConnectionManager) Stop() {
|
|
close(manager.stopChan)
|
|
close(manager.stopChan)
|
|
}
|
|
}
|
|
-
|
|
|
|
-// UpdateActivity 跟新最近活跃时间
|
|
|
|
-func (manager *ConnectionManager) UpdateActivity(sessionID string) {
|
|
|
|
- if session, ok := manager.Sessions.Load(sessionID); ok {
|
|
|
|
- session.(*Session).LastActive = time.Now()
|
|
|
|
- }
|
|
|
|
-}
|
|
|