Как получать сообщения, которые были ранее отправлены в группе (socket.io) - PullRequest
0 голосов
/ 30 сентября 2019

Как мы можем получить сообщения, которые мы были в автономном режиме в то время? Предположительно люди были в группе, и они общались вместе. И я просто присоединяюсь сейчас, или я человек, который до сих пор был не в сети, но сейчас я в сети и хочу получить сообщение, которое уже было отправлено.

Я сделал это в частном порядке. чат, но для группы есть комнаты и есть что-то другое. пример для чата p2p Я сохранил сообщения в переменной массива, а затем удалил их, когда эти конкретные сообщения отправили.

В чем проблема?

Проблема для чата p2pмы можем отправить сообщение на конкретный идентификатор сокета, но для комнаты, если мы ее отправим, другие люди получат повторяющиеся сообщения.

Код:

groupchat.on('connection', cs => {

    cs.on('joinmultiple', rooms =>  {
        for (let room in rooms) cs.join(room);
    });

    cs.on('leaveultiple', rooms =>  {
        for (let room in rooms) cs.leave(room);
    });

    cs.on('setmessage', data => {
        cs.to(data.room).emit('getmessage', data);
    });

});

1 Ответ

0 голосов
/ 30 сентября 2019

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

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