Skip to content

Commit 93b3cfa

Browse files
committed
修复bug
1 parent 0d9582b commit 93b3cfa

File tree

5 files changed

+35
-33
lines changed

5 files changed

+35
-33
lines changed

io_client_manage.go

+5-31
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@ import (
1010
"time"
1111
)
1212

13-
func NewClientManage(ctx context.Context, key string) *ClientManage {
14-
Log := defaultLogger()
13+
func NewClientManage(ctx context.Context, key string, log *logger) *ClientManage {
1514
e := &ClientManage{
1615
Key: Key(key),
17-
Logger: Log,
16+
Logger: log,
1817
m: make(map[string]*Client),
1918
mu: sync.RWMutex{},
2019
ctx: ctx,
@@ -23,7 +22,7 @@ func NewClientManage(ctx context.Context, key string) *ClientManage {
2322
timeoutInterval: DefaultTimeoutInterval,
2423
ClientOptions: ClientOptions{
2524
beforeFunc: func(client *Client) error {
26-
Log.Infof("[%s] 新的客户端连接...\n", key)
25+
log.Infof("[%s] 新的客户端连接...\n", key)
2726
return nil
2827
},
2928
closeFunc: nil,
@@ -221,7 +220,8 @@ func (this *ClientManage) SetClient(c *Client) {
221220
if this.beforeFunc != nil {
222221
if err := this.beforeFunc(c); err != nil {
223222
this.Logger.Errorf("[%s] %v\n", c.GetKey(), err)
224-
_ = c.CloseAll()
223+
//丢弃连接,防止重复连接断开
224+
//_ = c.CloseAll()
225225
return
226226
}
227227
}
@@ -467,29 +467,3 @@ func (this *ClientManage) _closeFunc(ctx context.Context, c *Client, msg Message
467467
this.mid.Delete(c.Pointer())
468468
delete(this.m, c.GetKey())
469469
}
470-
471-
//func (this *ClientManage) _closeFunc(closeFunc ...func(ctx context.Context, msg Message)) func(ctx context.Context, c *Client, msg Message) {
472-
// return func(ctx context.Context, c *Client, msg Message) {
473-
// defer func() {
474-
// c.CloseAll()
475-
// for _, f := range closeFunc {
476-
// if f != nil {
477-
// f(ctx, msg)
478-
// }
479-
// }
480-
// }()
481-
// if this.closeFunc != nil {
482-
// defer this.closeFunc(c, msg)
483-
// }
484-
// this.mid.Delete(c.Pointer())
485-
// this.mu.Lock()
486-
// defer this.mu.Unlock()
487-
// //获取老的连接
488-
// oldConn := this.m[c.GetKey()]
489-
// //存在新连接上来被关闭的情况,判断是否是老的连接
490-
// if oldConn == nil || oldConn.Pointer() != c.Pointer() {
491-
// return
492-
// }
493-
// delete(this.m, c.GetKey())
494-
// }
495-
//}

io_const.go

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ const (
6565
FliedCode = "code"
6666
FliedData = "data"
6767
FliedMsg = "msg"
68+
FliedUID = "uid"
6869
FliedAddress = "address"
6970
FliedError = "error"
7071
)

io_pkg_simple.go

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ func (this *Simple) sum(bs []byte) byte {
9595
return sum
9696
}
9797

98+
// SimpleData key和value的长度不能超过255
9899
type SimpleData map[string][]byte
99100

100101
func (this SimpleData) Bytes() g.Bytes {

io_server.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,13 @@ func NewServerWithContext(ctx context.Context, newListen func() (Listener, error
2929
return nil, err
3030
}
3131
key := fmt.Sprintf("%p", listener)
32+
logger := defaultLogger()
3233
//新建实例
3334
s := &Server{
3435
Key: Key(key),
35-
logger: defaultLogger(),
36+
logger: logger,
3637
Closer: safe.NewCloser(),
37-
ClientManage: NewClientManage(ctx, key),
38+
ClientManage: NewClientManage(ctx, key, logger),
3839
tag: maps.NewSafe(),
3940
listener: listener,
4041
}

testdata/testrefuse/main.go

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package main
2+
3+
import (
4+
"github.com/injoyai/logs"
5+
"net"
6+
"syscall"
7+
)
8+
9+
func main() {
10+
11+
listen, err := net.ListenTCP("tcp", &net.TCPAddr{
12+
Port: 10086,
13+
})
14+
logs.PanicErr(err)
15+
for {
16+
c, err := listen.AcceptTCP()
17+
if !logs.PrintErr(err) {
18+
fd, err := c.File()
19+
if !logs.PrintErr(err) {
20+
syscall.Shutdown(syscall.Handle(fd.Fd()), syscall.SHUT_RDWR)
21+
fd.Close()
22+
}
23+
}
24+
}
25+
}

0 commit comments

Comments
 (0)