Continuing the discussion from Who's Online Plugin:
My plugin relies on receiving every message on a messagebus channel, in order, with no gaps.
As I understand it, if the client loses connection, it should receive all the messages it missed when connection is regained.
However… it seems the server only stores the last 100 messages, and so if the client misses more than 100 messages, it all goes horribly wrong.
One way I can think of dealing with this is for each client to check the
message_id of each message and check it is 1 greater than the previous message it received. If not, get the missing information by some other method.
Is this problem faced in Discourse itself anywhere, and is there a more elegant solution?