Message on disconnect?
Options
corwinlw
✭
Hello!
I'm using Photon Self-Hosted and had a question. When I disconnect a peer, is there a way to send a message to that client about why they are being disconnected? Failing that, is there a good way to make sure we've flushed a specific Event or Object and that the client has received it?
I'm seeing that if I send an Event or Object over, they may not get there until the disconnect happens, and sometimes won't get there at all. I have tried calling Flush() but that doesn't seem to make a difference. If I send the payload, then wait a half second, then disconnect, that seems to work, but even that can be unreliable depending on latency.
Thanks!
I'm using Photon Self-Hosted and had a question. When I disconnect a peer, is there a way to send a message to that client about why they are being disconnected? Failing that, is there a good way to make sure we've flushed a specific Event or Object and that the client has received it?
I'm seeing that if I send an Event or Object over, they may not get there until the disconnect happens, and sometimes won't get there at all. I have tried calling Flush() but that doesn't seem to make a difference. If I send the payload, then wait a half second, then disconnect, that seems to work, but even that can be unreliable depending on latency.
Thanks!
0
Comments
-
hi, @corwinlw
the way you found is the only way, but you should wait more 3-5 seconds is ok. also, you need to raise up flag in Peer that after calling method SendEventAndDisconnect it does not bother you with any incomming data.
also you may add reaction on client: so that when it gets this message it disconnects from server
best,
ilya0 -
Thanks! Where is the method "SendEventAndDisconnect" located? Also what flag do I need to raise on the Peer?0
-
you should do it your self
it will look like this.SendResult SendEventAndDisconnect(IEventData data, SendParameters paramters, int disconnectDelay = 3000) { this.ScheduleForDisconnect = true; var result = this.SendEvent(data, parameters); this.RequestFiber.Schedule(this.Disconnect, disconnectDelay); }
use this.ScheduleForDisconnect to reject all incoming operation requests
best,
ilya0