rpcclient: close WSClient subscriber on overflow
Close #2894. It should be noted that the subscriber's channel is being removed from the list of receivers and closed, but it is still *in the list of subscribers* and no unsubscription is performed by WSClient. Which means that RPC server keeps sending notifications to WSClient and WSClient keeps dropping them (because there's no receiver for this subscription and it's OK, WSClient can handle this and this behaviour is documented). However, it's still the caller's duty to call Unsubscribe() method for this subscription. Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
This commit is contained in:
parent
4a49bf5de4
commit
dab13a4e2d
3 changed files with 211 additions and 39 deletions
|
@ -1803,7 +1803,7 @@ func TestRPCClients(t *testing.T) {
|
|||
})
|
||||
t.Run("WSClient", func(t *testing.T) {
|
||||
testRPCClient(t, func(ctx context.Context, endpoint string, opts Options) (*Client, error) {
|
||||
wsc, err := NewWS(ctx, httpURLtoWS(endpoint), WSOptions{opts})
|
||||
wsc, err := NewWS(ctx, httpURLtoWS(endpoint), WSOptions{Options: opts})
|
||||
require.NoError(t, err)
|
||||
wsc.getNextRequestID = getTestRequestID
|
||||
require.NoError(t, wsc.Init())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue