We've heard feedback from outside websocket consumers about some shortcomings of the websocket protocol, especially for third party clients. Overall, the general consensus is the following problems/shortcomings
- No indication of when a board was last generated
- This means that clients with autotracking have no reliable mechanism of resetting tracking progress if metadata is not absolute
- Websocket messages should generally be more unique, allowing for consumers to accurate identify the source/trigger of a change
- For marked/unmarked goals, this should be separate message types
- syncBoard should be retired in favor of "boardGenerated" "boardRevealed" and other similar events
- chat events should be strictly for user sent chat messages, not system messages representing state changes in text form
- The following event types should be added
- boardGenerated which indicates that the board (re)generated
- timerStart, timerStop
- playerUpdate, a generic message indicating that there has been change to the data of a specific player
- updateRoomData should be deprecated as it is too broad to be particularly useful, and roomData could realistically be synced as a universal element across message types
Additionally, consumers may find the following changes useful
- Include roomData with all message types
- switch player list to a map of id to player object to make lookups easier/faster (O(n) filter -> O(1) lookup)
We've heard feedback from outside websocket consumers about some shortcomings of the websocket protocol, especially for third party clients. Overall, the general consensus is the following problems/shortcomings
Additionally, consumers may find the following changes useful