I am just testing your great librrary!
So I started playing a bit with the provided 'MiniChat' example. One thing I noticed is that if the server throws an exception, that any clients will terminate abnormally as well.
Example (all on the same local machine):
- Start the MiniChat.Server
- Start a 1st MiniChat.Client and Login
- Start a 2nd MiniChat.Client and Login
- Let them chat a bit...
Now open the TaskManager and KILL the 2nd MiniChat.Client process (terminate it). This to emulate a situation, where a client suddendly just disappreas without gracefully shutting down its session (e.g. due to a machine crash or whatever other broken
- Now try to send a message (chat) from the (still existing and connected) 1st MiniChat-Client.
The result is, that this client crashes!
I believe this is due to the fact, that the server still has got 2 subscribed message handlers which he is now trying to handle - but this leads to an exception when trying to invoke the message handler for the 'killed' client. As a result an an exception
is propagated to the 'existsing/still-alive' client - which now terminates abnormally?!
Why is this? Is there anything to avoid this?
The reason for asking this is, that I believe, that this situation is quite critical - as the current behaviour means: If one client crashes - all clients might crash...a situation not really reliable in a real-world use-case.
Many THX in advance,
(P.S.: If it is easier to answer in German - no problem, I am German too)