Sobes.tech
Senior

Como é que o cliente fica a saber das mensagens recebidas enquanto estava offline?

sobes.tech IA

Resposta da IA

Чтобы клиент узнал о сообщениях, полученных в офлайн, обычно реализуют механизм хранения сообщений на сервере (persistent storage). Когда клиент подключается, он отправляет идентификатор последнего полученного сообщения или временную метку. Сервер по этому параметру выбирает и отправляет все пропущенные сообщения.

В Go это можно реализовать, например, через базу данных или очередь сообщений. Клиент при повторном подключении запрашивает все сообщения с момента последнего подтверждения.

Пример упрощённого подхода:

// При подключении клиента
lastReceivedID := client.GetLastReceivedMessageID()
missedMessages := server.GetMessagesAfter(lastReceivedID)
client.SendMessages(missedMessages)

Таким образом обеспечивается надёжная доставка сообщений, даже если клиент был офлайн.