-
Notifications
You must be signed in to change notification settings - Fork 201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
stream 关闭后,session.AcceptStream阻塞了 #104
Comments
我的client从stream中读到eof之后,已经关闭了stream,sess,以及对应的udpsession的conn,但是server那边的AcceptStream还是阻塞着的直到超时,这看起来应该与预期不符吧 |
stream的FIN和session的关闭,是两回事。 没有session关闭的信号,底层连接关闭就视为session关闭。 |
但是问题server的session的关闭由谁来触发,client已经关闭了session,但是server这边的session没有人去关闭它,server这边不可能在关闭一个stream的时候就把session关闭吧,那如果不关闭,这个session就会一直存在。问题是client关闭的session也没有告知server的session。 |
被动关闭,AcceptStream读取net.Conn返回错误的时候。 |
ok,这个就是我想表达的疑问,看起来这里只能超时关闭 |
smux不负责管理底层链接,只负责使用。 |
server部分代码
sess创建自一个kcp.UdpSession:
sess, err := smux.Server(conn, smuxConfig)
我的client和server都是已经关闭了stream的
但是我发现在关闭之后,AcceptStream一直阻塞知道smux超时才返回一个io: read/write on closed pipe
通过抓包我看到了smux确实已经互相发了fin包,但是这里一直阻塞的原因不太清楚
The text was updated successfully, but these errors were encountered: