Delivery Sequence of RPC vs. Callbacks like OnMasterClientSwitched

Options
Hello, I can't find a certain answer to this question anywhere. I understand that Photon guarantees delivery sequence of all messages that are on the same sequence channel. But I'm not sure how that relates to RPC events I raise vs. callbacks like master client switch events.

Consider this scenario:
Master client A and non-master client B are connected. Master A sends an RPC event, then calls SetCustomRoomProperties, then disconnects from Photon.

Is client B guaranteed to receive the RPC event first, the OnRoomPropertiesUpdate callback second, and the OnMasterClientSwitched callback third?

If it makes a difference, the class sending and receiving the RPC is derived from MonoBehavior, and sends the RPCs via PhotonNetwork.RaiseEvent with RaiseEventOptions.SequenceChannel not specified (default to zero I guess). It receives the RPCs in a listener subscribed to PhotonNetwork.NetworkingClient.EventReceived.

The class receiving the OnRoomPropertiesUpdate and OnMasterClientSwitched callbacks are derived from MonoBehaviourPunCallbacks.

Another way to ask it: Does the sequence channel concept apply to the MonoBehaviorPunCallbacks, and if so, are those on the same channel as the RPC events?

Thanks for any insights!

Comments

  • Tobias
    Options
    If you make the question just about the RPC and SetCustomProperties, then yes, the sequence is guarenteed. RPCs and SetCustomProperties are normally sent on the same channel as sequenced.

    The Disconnect makes things more complex. When you disconnect, this clears the outgoing queued and messages that might need resends (if lost / not acknowledged). The sequence would still be intact but messages may be missing: Either both RPC and Props or just the Props set. Should the RPC call not arrive on the server, the set properties is also not executed (due to the sequencing)...
  • GoodOlJoe
    Options
    Thank you so much, very good information.