661 bytes added, 6 years ago
/* Joiner */
If the message has a session id of a session that the user is part of, then message handling is governed by the finite state machine table described below. Otherwise, the messages should be handled as follows:
=====Joiner=====In current (n+1)sec implementation, this state is implemented as:
user_in_room_state == JOINING * Messages without session id (including JOIN_REQUEST):The Joiner , user in "JOINIG" state will ignores all messages without session id.
If the message has session id corresponding to a session that the joiner already constructed (and is in process of joining, i.e. is not DEAD), then the session FSM will deal with the message.
If the message has a session id - of wich which the joiner is has not a party constructed - the joiner will react as follows:
* ''Participant Info'': ** If the joiner is mentioned in the participant list, the joiner construct a session with that list.** If the joiner is not mentioned in the plist, the joiner ignore the message (*** Should the joiner begins a session by appending itself to the list?). * ''Session Confirmation'': re-try to The joiner will mark all sessions as DEAD and wait for the new participant list (*** should joiner send a new joinrequest?).
=====Confirmed Participant=====