Я пытаюсь найти лучший способ хранения сообщений чата в интерфейсе на время сеанса. Учитывая, что я использую сокет io, но также и автономный обмен сообщениями, когда сообщение было отправлено пользователю A от пользователя B, когда пользователь A был в автономном режиме. В настоящее время у меня настроен пользовательский интерфейс: у меня есть боковая панель чата, которая отображается, когда пользователь хочет поговорить со своим другом, когда он нажимает на имя пользователя (например, facebook), после чего появляется нижний лист, который должен содержать сеанс чата нижний лист является отдельным компонентом.
Я думал об этом с разных сторон, и мне кажется, что я должен обдумать некоторые мнения. Я думал о том, чтобы выполнить только запрос GET, когда нижний лист чата был открыт пользователем (может быть очень медленным!), И победить цель общения в реальном времени, делая сокеты бесполезными. Я также думал о том, чтобы сохранить все объекты чата в LocalStorage и, наконец, просто сохранить все разговоры в глобальном массиве, который содержит объекты чата.
getMessages(socket) {
let observable = new Observable(observer => {
socket.on('incoming', (data) => {
observer.next(data);
});
return () => {
this.socket.disconnect();
};
})
return observable;
}
Мы видим, что в моем сервисе есть наблюдаемая; в моем коде компонента я в настоящее время подписался на это - это прекрасно работает; нет вопросов - возникает вопрос, что дальше? учитывая, что у меня есть нижний лист чата, и я хочу, чтобы эта история сообщений отображалась в листе для пользователя, на которого я нажал
АКТУАЛЬНО:
в настоящее время ничего не происходит, я могу получать сообщения с успехом, но на текущий момент; Я просто регистрирую сообщения в консоли
ОЖИДАЕТСЯ:
Я нажимаю имя пользователя Боб на моей боковой панели, во всплывающем окне внизу листа, теперь я могу видеть историю моего чата с Бобом за день и видеть новые сообщения, которые могут появляться, когда я общаюсь с Бобом.