Давно смотрел на это.Во-первых, это не двусторонняя связь.Просто серверу приходится отправлять 1,2 или 3 клиенту всякий раз, когда что-то происходит сзади.
Полный сценарий:
Некоторым сотрудникам разрешено делать то, что генерирует файлы XML / JSON вспина.Остальные сотрудники используют эти недавно созданные, обновленные данные.Проблема в том, что клиент может сохранить копию, даже если она была обновлена, потому что я получаю копию последних сгенерированных файлов, когда пользователь входит в систему или вручную проверяет наличие любых новых данных.
Теперь я хочу, чтобы серверуведомить интерфейсную часть о том, что произошли изменения, и молча получить новый контент.
Текущее решение:
Мое текущее решение - проверять изменения каждый час и уведомлять пользователя о необходимости выйти из системы или войти в систему иливручную извлекать данные с помощью таймеров, таких как:
import 'rxjs/add/observable/timer'
import { Observable } from 'rxjs/Observable';
Observable.timer(0,3600000).subscribe(() => {
this.fileConsumerService.checkNew().subscribe(data=> {
if(data==true){
alert('New data has been generated. Please click on Update button or relogin')
}
})
});
Пока он работает, мне не очень удобно это решение.Иногда проверка происходит намного позже после отправки данных, поэтому сотрудники работают с более старыми данными.Я понизил его до одной минуты, что является лучшим.
Как обойти это, пожалуйста?