Как работать с многопользовательским сценарием с помощью push-уведомлений Pushy Web? - PullRequest
0 голосов
/ 17 декабря 2018

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

Например, на домашнем ноутбуке с использованием Chrome пользователь 1 можетвойдите в систему и закройте браузер (время аутентификации истекло, поэтому использование будет отключено через n минут бездействия) или выйдите из системы.Затем пользователь 2 может войти в систему.

Я планирую использовать push-уведомления Pushy для отправки push-уведомлений пользователей, но я нажал на блокировщик.

Следующий код используется для регистрации Pushy:

Pushy.register({ appId: 'app-id' }).then(function (deviceToken) {
    // Print device token to console
    console.log('Pushy device token: ' + deviceToken);

    // Send the token to your backend server via an HTTP GET request
    //fetch('https://your.api.hostname/register/device?token=' + deviceToken);

    // Succeeded, optionally do something to alert the user
}).catch(function (err) {
    // Handle registration errors
    console.error(err);
});

Теперь, когда пользователь 1 входит в систему, генерируется маркер устройства abc123.Внутренне я сохраню этот маркер устройства для пользователя 1 и смогу успешно отправить push-уведомление.Если пользователь 1 вышел из системы и пользователь 1 вошел в систему, новый токен устройства не зарегистрирован, поэтому я могу назначить токен устройства пользователю 2.

Если я попытаюсь очистить все локальное хранилище Pushy, тосоздается новый маркер устройства def456, и я могу успешно отправить push-уведомление на def456, но также могу отправить push-уведомление на abc123.

Если я отменил регистрацию работника службы и затем попыталсярегистрируя Pushy с помощью приведенного выше кода, генерируется новый маркер устройства ghi789, и я могу успешно отправить push-уведомление на ghi789.Теперь я не могу отправить push-уведомления на abc123 и def456.

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

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

Нужно ли использовать области?Если да, как я могу использовать области.Нужно ли обновлять работника службы?Если да, то как мне добиться этого, так как я думаю, что Push обрабатывает регистрацию сервисного работника.Есть ли что-то еще, что мне не хватает?

Должен ли я отменить регистрацию работника службы, когда пользователь выходит из системы, чтобы при повторной регистрации пользователя в системе работника службы снова создавался новый маркер устройства Pushy?

...