Conversation
|
如果你真的很闲能不能麻烦去issue里找几个bug修一修 |
|
这个古早bug不是很久以前就修复了吗 |
|
the code is clear, for example after the session closed in: Xray-core/common/mux/client.go Line 339 in cb1afb3 there is no notify to server that this session is closed! if you think 2 PR is too much i merge this PR to #4861 and rename that to fix some mux bugs, OK? |
|
当server在这个流上发送下一个帧的时候客户端会发现它已经被关闭了 然后发送end |
Why do we have to wait until the next frame? this is definitely waste. ok, i merge this to previous PR and we can discuss there, i can explain changes one by one. |
|
i just read the mux-code, because many people complained about.
|
实际情况是从sessionManager移除后缓冲区还有没处理完的frame会直接关闭这个连接(就你说的大流量浪费场景这是几乎100%的) |
|
right, I neglected /// what about number 2 and 3, |
|
sessionManager.Add不会返回false 它是在run的的defer里才会关闭导致false的 |
but we close link.writer in client-mux after sessionManager closed, so we should close it in server-mux after sessionManager closed, both side should act same. also, if |
after a sub-connection(session) is closed, we should notify remote peer immediately to close this session.
This did not happen in some cases.(after session-output is closed)
we should close link.Reader and link.Writer after end of ServerWorker-run.
this part of code:
Xray-core/common/mux/server.go
Lines 236 to 240 in cb1afb3
is written incorrectly and needs to be rewritten.
return
s.Close(false)instead ofbuf.Copy(rr, buf.Discard)!!!