Get desktop application:
View/edit binary Protocol Buffers messages
The badge count service is designed to allow the client to communicate its unread conversation state back to the server. For various complexity and performance reasons across critical message paths, The server is unlikely to be able to determine the badge counter as calculated by the client with 100% accuracy, so by having the client report it's state, the server can self-correct its conversation state and report more accurate badge counters in the future.
This is called to synchronize the server's internal "unread conversation" state. Due to iOS limitations, the client can't reliably compare the last pushed badge counter with its actual state, so SetUnreadConversations should be called whenever the client receives a non-empty QoS flush, on the last batch of QoS pages to periodically synchronize the state, and provide some ability to measure the reliability of the server's internal state.
This should contain the entire set of unread conversations by jid - IF the entire set of unread conversations exceeds max_repetitions, take the first 200 conversation buckets as the client sees them.
this only differs from the size of conversations_unread when the actual number of unread conversations is larger conversations_unread.max_repetitions