Обновляет пользователя новым сообщением в приложении чата

0
задан user938363 3 March 2019 в 21:09
поделиться

1 ответ

Я буквально только что создал производственное приложение, использующее React и Socket.io для отправки сообщений пользователям в определенной комнате, когда пользователь отправляет сообщение в определенный разговор. Я не использовал push-уведомления, потому что я создавал веб-приложение, а не мобильное приложение, но ваше упоминание о push-уведомлениях является логическим мобильным эквивалентом отправки информации о сообщении непосредственно всем пользователям в комнате. Насколько я рассмотрел доступные варианты в моей ситуации, я думаю, что вы рассмотрели все возможные варианты выше.

При этом, как вы упомянули, есть плюсы и минусы для обоих подходов (отправка всего сообщения напрямую всем пользователям или отправка небольшого уведомления всем пользователям для получения всех последних сообщений). Преимущество первого варианта заключается в том, что сообщение сразу же отправляется всем пользователям, поэтому они получат его намного быстрее, чем во втором сценарии. Но если вы используете Socket.io таким образом, что, например, вы отправляете сообщения всем пользователям энергозависимым образом, то для первого сценария было бы то, что пользователи-клиенты могут не получить сообщение из-за сети сбой и то сообщение, которое было отправлено, не появятся в их сообщениях беседы. Кроме того, отправка всей информации сообщения напрямую не дает клиентскому приложению контроля над тем, когда получать ВСЕ данные сообщения. С другой стороны, преимуществом последнего сценария будет то, что всем пользователям в разговоре будет отправлено только небольшое сообщение, что позволит сэкономить на объеме передаваемых данных, а затем эти пользователи смогут запросить последние сообщения на досуге, так как клиентское приложение считает целесообразным. Недостатком в этом случае будет то, что фактическое отправленное сообщение не попадет в клиентские приложения немедленно, что приведет к некоторой задержке между отправкой и получением сообщения. Но, конечно, такую ​​вещь было бы трудно заметить, если бы два клиентских приложения не были открыты на двух отдельных устройствах рядом, а кто-то наблюдал с помощью секундомера, чтобы проверить время задержки.

В целом, я считаю, что вы перечислили все свои варианты выше. Теперь все сводится к тому, какой сценарий, по вашему мнению, подходит для вашей прикладной ситуации, основываясь на плюсах и минусах этих сценариев.

0
ответ дан n4tiv3pwnst4r 3 March 2019 в 21:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: