90 exposed the protocoltimeout exception so clients could respond.
I am not sure the underlying event code would actually ever fire. At a minimum if an exception happened during sending (ie socket closed) it would just silently kill the heartbeat loop without triggering the timeout event.
I think even in the 'best' case of the xbox just being slow to respond, it would still trigger an exception as the send function waits for the response from the server but only for the timeout window before throwing an exception.
This code doesn't actually trigger on exception, but just logs the exception lets the heartbeat loop keep running (then it will trigger the event as normal).
It also adds more details to the ack messages that get sent (to make it clear one is client heartbeat request vs acking the server's request).
90 exposed the protocoltimeout exception so clients could respond.
I am not sure the underlying event code would actually ever fire. At a minimum if an exception happened during sending (ie socket closed) it would just silently kill the heartbeat loop without triggering the timeout event.
I think even in the 'best' case of the xbox just being slow to respond, it would still trigger an exception as the send function waits for the response from the server but only for the timeout window before throwing an exception.
This code doesn't actually trigger on exception, but just logs the exception lets the heartbeat loop keep running (then it will trigger the event as normal).
It also adds more details to the ack messages that get sent (to make it clear one is client heartbeat request vs acking the server's request).