Если вы подключены к серверу и отправляете сообщение, вы можете быть достаточно уверены, что сообщение достигло сервера.Если клиент находится в ненадежной сети, иногда TCP-соединения молча разрываются, и прошло некоторое время, прежде чем это было обнаружено, и они закрылись.Возможные решения этой проблемы (в порядке сложности):
- Пропингуйте сервер через равные промежутки времени, используя XEP-0199 .
- Реализация XEP-0198.Предельная надежность, но более сложная в реализации и требует поддержки сервера.
Другая проблема, о которой вы, похоже, беспокоитесь, - пользователь 2 видит сообщение.Я не знаю о вашем приложении, как оно настроено или как вы хотите, чтобы оно работало.Однако большинство серверов XMPP автоматически сохраняют сообщения, отправленные пользователю, когда они находятся в автономном режиме.Затем они доставляются пользователю при подключении к сети.См. XEP-0160 для получения дополнительной информации.
Наконец, вы можете использовать квитанции сообщения, чтобы узнать, когда пользователь2 получил / прочитал сообщение.Они описаны в XEP-0184 и, возможно, only , что вам действительно нужно реализовать, если все, что вам нужно, это знать, что user2 получил сообщение.