Confirmed users
632
edits
m (added Category:Firefox Hello using HotCat) |
|||
| Line 462: | Line 462: | ||
In order to track room state for metric purposes, the client will also send a POST message to the "/rooms/{token}" endpoint whenever a state change occurs, according to the following state machine: | In order to track room state for metric purposes, the client will also send a POST message to the "/rooms/{token}" endpoint whenever a state change occurs, according to the following state machine: | ||
[[ | <center><graphviz format="png" renderer="dot"> | ||
digraph loop_room_state { | |||
init; | |||
waiting; | |||
starting; | |||
sending; | |||
receiving; | |||
sendrecv; | |||
cleanup; | |||
init->waiting [label="Sesssion.connectionCreated"] | |||
waiting->starting [label="Sesssion.connectionCreated"] | |||
starting->receiving [label="Sesssion.streamCreated"] | |||
starting->sending [label="Publisher.streamCreated"] | |||
receiving->sendrecv [label="Publisher.streamCreated"] | |||
sending->sendrecv [label="Session.streamCreated"] | |||
sendrecv->receiving [label="Publisher.streamDestroyed\nif send count = 0"] | |||
sendrecv->sending [label="Session.streamDestroyed\nif recv count = 0"] | |||
sending->cleanup [label="Publisher.streamDestroyed\nif send count = 0"] | |||
receiving->cleanup [label="Session.streamDestroyed\nif recv count = 0"] | |||
cleanup->waiting [label="Session.connectionDestroyed\nif connection count = 1"] | |||
waiting->init [label="Session.connectionDestroyed"] | |||
} | |||
</graphviz></center> | |||
Note that there are some exceptional transitions that are not shown; in particular, a "session.connectionDestroyed" event from any of the "starting", "sending", "receiving", or "sendrecv" states will cause a transition to "waiting." | Note that there are some exceptional transitions that are not shown; in particular, a "session.connectionDestroyed" event from any of the "starting", "sending", "receiving", or "sendrecv" states will cause a transition to "waiting." | ||