Closed IrineSistiana closed 4 years ago
sess, err := smux.Client(conn, defaultSmuxConfig)
如果上游的 conn 关闭,sess.IsClosed() 只检查 s.die 所以还是返回 false。但实际上这个sess已经不能读也不能写了。
conn
sess.IsClosed()
s.die
能否提供查询
https://github.com/xtaci/smux/blob/211bc4a98c77d2bed8f87d7cd040683541809304/session.go#L62-L63
的方法。
这样的话能在下一次io前能对上游conn进行检查。防止io的时候出错。比如:
for { if sess.IsClosed() { openAnotherSess() } if sess.HasReadErr() || sess.HasWriteErr(){ openAnotherSess() } stream, err := sess.AcceptStream() if err != nil { log(something) } }
感谢,cheers
重复 #44
如果上游的
conn
关闭,sess.IsClosed()
只检查s.die
所以还是返回 false。但实际上这个sess已经不能读也不能写了。能否提供查询
https://github.com/xtaci/smux/blob/211bc4a98c77d2bed8f87d7cd040683541809304/session.go#L62-L63
的方法。
这样的话能在下一次io前能对上游conn进行检查。防止io的时候出错。比如:
感谢,cheers