fix: 修复连接管理器未能正确清理连接的问题。

main v0.5.5
NoahLan 2 years ago
parent 1a30d41e21
commit 6a9a0288ec

@ -35,6 +35,19 @@ func (m *Manager) Store(groupName string, s entity.NetworkEntity) error {
return group.Add(s)
}
func (m *Manager) Remove(groupName string, s entity.NetworkEntity) error {
m.Lock()
delete(m.conns, s.Session().ID())
m.Unlock()
group, ok := m.FindGroup(groupName)
if !ok {
return nil
}
return group.Leave(s)
}
// NewGroup 新增分组,若分组已存在,则返回现有分组
func (m *Manager) NewGroup(name string) *Group {
m.Lock()

@ -3,6 +3,7 @@ package core
import (
"errors"
"fmt"
"git.noahlan.cn/noahlan/nnet/conn"
"git.noahlan.cn/noahlan/nnet/entity"
"git.noahlan.cn/noahlan/nnet/packet"
"git.noahlan.cn/noahlan/nnet/scheduler"
@ -268,6 +269,7 @@ func (r *connection) Close() error {
close(r.chDie)
scheduler.PushTask(func() { Lifetime.Close(r) })
}
_ = r.ngin.connManager.Remove(conn.DefaultGroupName, r)
r.session.Close()
return r.conn.Close()

Loading…
Cancel
Save