Одностороннее фоновое уведомление от сервера к клиенту (Django сообщает Angular 4, что произошло сзади) - PullRequest
0 голосов
/ 12 июня 2018

Давно смотрел на это.Во-первых, это не двусторонняя связь.Просто серверу приходится отправлять 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')
    }

  })
});

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

Как обойти это, пожалуйста?

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