Я пытаюсь отладить, почему уведомления в реальном времени занимают очень много времени, используя API в реальном времени.Выполнение ручного извлечения данных работает, как и ожидалось.
Я зарегистрировался в личной учетной записи getstream и использовал эти ключи, а задержка уведомления соответствует ожидаемой.
Однако, с точно таким же кодом и простым переключением ключей с имеющимся у нас приложением, требуется более 16 минут (!!!), чтобы прибыть (я не прикрепляю видео здесьтак как он огромный, но это всего лишь скриншот того времени, когда пришло уведомление).
Я могу подтвердить, что данные передаются в getstream, посмотрев навкладка проводника потока на веб-сайте и включение автообновления.
Вот пример кода POC, который я написал для иллюстрации проблемы https://github.com/parasquid/getstream_poc/blob/master/views/index.html.erb
<script src="https://cdn.jsdelivr.net/npm/getstream/dist/js_min/getstream.js"></script>
hello!
<div id="timer"></div>
<p><button id="add-activity">Add activity</button>
<script>
var interval
var client = stream.connect('<%= @apikey %>', null, '<%= @appid %>');
var userFeed = client.feed('user', '<%= @user_id %>', '<%= @user_token %>')
var userSubscription = userFeed.subscribe(
() => userFeed.get()
.then(streamData => console.log(streamData))
.then(() => clearInterval(interval)),
(errors) => console.error({errors})
);
var notificationFeed = client.feed('notification', '<%= @user_id %>', '<%= @notification_token %>')
var notificationSubscription = notificationFeed.subscribe(
() => notificationFeed.get().then(streamData => console.log(streamData)),
(errors) => console.error({errors})
);
button = document.querySelector("button#add-activity")
button.onclick = (e) => {
timer = document.querySelector("div#timer");
var seconds = 0
interval = setInterval(() => {
seconds++;
timer.innerHTML = seconds;
}, 1000);
fetch("/add_activity")
.then(r => r.json())
.then(json => console.log(json));
}
</script>
Судя по тому, что я могу собрать, это кажетсябыть конкретным для учетной записи, а не для реализации;или, может быть, я просто делаю что-то странное.Буду признателен за указатели!
Обновление 2019-04-02
Я создал еще одно приложение, которое максимально точно отражает настройки другой учетной записи (просто изменив местоположение,Похоже, нам нужно связаться со службой поддержки, чтобы изменить местоположение для существующего приложения, и мы используем только группы пользователей и фиды уведомлений), и хотя здесь определенно больше задержек, это не так плохо, как в исходном приложении.