Mqtt messages send to /messenger_sync_create_queue and /messenger_sync_get_diffs modified so we receive /t_ms delta messages we did not receive before, such as messages removals, replies, and reactions.
The addition of client_delta_sync_bitmask: 'Amvr2dBlf7PNgA' to the message sent in createQueue() is the most important bit, but the rest was copied mostly verbatim as well.
This bitmask comes from an array of numbers ranging from 0 to 67, when is then encoded into a byte bitmask, and finally byte64 encoded. We have no way of knowing what the individual flags means, so it is copied as-is.
Both messages include a sync_api_version value. The queue must be created with a value of 3 to receive json payloads rather than thrift, and must be connected to with 10 to receive all messages ( reactions and message removals, for instance, as otherwise omitted ).
The decoded payload. Note that some of the property names are incorrect, as they are automated best-guesses made by comparing the structure to other thrift payloads.
Mqtt messages send to
/messenger_sync_create_queue
and/messenger_sync_get_diffs
modified so we receive/t_ms
delta messages we did not receive before, such as messages removals, replies, and reactions.The addition of
client_delta_sync_bitmask: 'Amvr2dBlf7PNgA'
to the message sent increateQueue(
) is the most important bit, but the rest was copied mostly verbatim as well.This bitmask comes from an array of numbers ranging from 0 to 67, when is then encoded into a byte bitmask, and finally byte64 encoded. We have no way of knowing what the individual flags means, so it is copied as-is.
Both messages include a
sync_api_version
value. The queue must be created with a value of3
to receive json payloads rather than thrift, and must be connected to with10
to receive all messages ( reactions and message removals, for instance, as otherwise omitted ).Below are a few examples of the messages received
Message removal:
Message reply:
Nothing immediately identifying it as a reply. Libfb parses it as a normal message at the moment.
Reactions:
Reactions are a bit strange, in that they contain a delta with a thrift-encoded payload written to a string. This will require special handling.
The decoded payload. Note that some of the property names are incorrect, as they are automated best-guesses made by comparing the structure to other thrift payloads.