Как просто ограничить отображение нового окна сообщения в Django каналах - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь сделать уведомление в режиме реального времени. У меня есть сценарий: пользователь отправляет сообщение пользователю2, он получает уведомление о том, что у вас есть сообщение от пользователя2.В этой папке входящих сообщений находятся последние 3 сообщения.

Я хочу сделать так, чтобы входящие сообщения были ограничены этими 3 ящиками. Если он получает новое сообщение. Не следует создавать ящик, вместо этого следует переписать окно недавних сообщений с этой информацией. Если он получает 3 новые сообщения от 3 разных пользователей. Этим 3 сообщениям следует обновлять эти сообщения, а не создавать новые ящики. Подумайте об этом, как в почтовом ящике сообщений в Facebook. Надеюсь, это имеет смысл.

1 Ответ

0 голосов
/ 27 января 2020

Я бы предложил:

A) Сохранять сообщения в БД как обычные записи (поскольку пользователи могут не подключаться к сети при отправке сообщения)

B) При обновлении сообщения / вставлено отправить сообщение в группу канального уровня для этого пользователя. (используйте получателей id, так как имя группы включает идентификатор сообщения в этом событии.)

C) в вашем потребителе WebSocket, вы подпишетесь на группу для подключенного пользователя.

D) Когда обработчик событий запускается у вашего потребителя, я бы прочитал сообщение из БД и отправил его клиенту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...