You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is the server calling the client a broadcast or client results? Is it something like the following?
In any case, the Hub method processes in serial for the client, so if the Hub methods wait for each other, a deadlock will occur.
Client results
sequenceDiagram
Client->>+Server: Invoke HubMethodA
Server->>+Client: Invoke ClientMethodA
Client->>+Server: Invoke HubMethodB
Server-->>-Client: Return from HubMethodB
Client-->>-Server: Return from ClientMethodA
Server-->>-Client: Return from HubMethodA
Loading
Broadcast
sequenceDiagram
Client->>+Server: Invoke HubMethodA
Server->>+Client: OnBroadcastMethodA
Server-->>-Client: Return from HubMethodA
Client->>Server: Invoke HubMethodB
Server-->>Client: Return from HubMethodB
Yes, the “Client Results” case is being used.
I see, a deadlock occurs when multiple duplex calls are made simultaneously.
In cases where the Client and Server need to communicate closely, this prevents the use of mechanisms like try/catch or a using scope, making the implementation much more complicated.
I would be very grateful if this could be improved.
And... If the Hub method processes are sequential, Then I realized there is a workaround using Task.Run in a method, but this method is challenging to use because it does not properly wait for the complete.
Using MagicOnion 7.0.0-preview.10
In StreamingHub
Would like to know if there is a plan to make this possible.
The text was updated successfully, but these errors were encountered: