javascript — не удается подписаться на канал после успешного завершения предоставления

Вот что я делаю в PHP:

$pubnub = new Pubnub(array(
'subscribe_key' => '<SUBSCRIBE_KEY>',
'publish_key' => '<PUBLISH_KEY>',
'secret_key' => '<SECRET_KEY>',
'uuid' => $uuid,
));
$grants = $pubnub->grant(true, true, $channel, $auth_key, 0);

Это работает. Я получаю ответ 200 с моим ключом авторизации и правильным доступом.

Затем я делаю это в JS:

var pubnub = PUBNUB.init({
auth_key: settings.auth_key,
subscribe_key: settings.subscribe_key,
publish_key: settings.publish_key,
uuid: settings.uuid,
});

pubnub.subscribe({
channel: settings.channel,
// auth_key: settings.auth_key,
// uuid: settings.uuid,
presence: function(m) {
console.log('presence', m);
},
message: function(m) {
console.log('message', m);
}
});

и это включает около 10 403 ошибок в секунду. Я пытался включить и исключить кучу конфигурационных переменных, как uuid а также auth_key, но все, что я получаю, это очень много 403-х годов.

Если я включу origin: 'pubsub.pubnub.com', presence Событие запускается один или два раза, но потом все равно целая куча 403-х. Если я не включу origin, только 403, нет событий.

Делать here_now() в JS работает нормально, но uuids пусто, и occupancy это 0:

setInterval(function() {
pubnub.here_now({channel: settings.channel}, function(rsp) {
console.log('here_now', rsp);
});
}, 2000);
  • Отключение диспетчера доступа в консоли администратора PubNub «исправляет» это, но, очевидно, мне нужно Access Management
  • Я думаю, что я следовал https://www.pubnub.com/docs/web-javascript/pam-security довольно точно, но ничего не работает.
  • https://www.pubnub.com/developers/tutorials/access-manager/ даже не упоминает .subscribe(), так что понятия не имею, что это должно делать.
  • URL-адрес JS для подписки (10x / sec) http://ps9.pubnub.com/subscribe/<SUBSCRIBE_KEY>/<CHANNEL>%2C<CHANNEL>-pnpres/0/0?uuid=<UUID>&auth=<AUTH_KEY>&pnsdk=PubNub-JS-Web%2F3.7.16

Почему PHP grant работать, но не JS subscribe?

4

Решение

В любое время вы используете Присутствие вместе с Диспетчер доступа (бесплатно для всех учетных записей) в PubNub, когда вы предоставляете разрешения каналам, вам также необходимо предоставить доступ к этим каналам. -pnpres коллеги, если клиенты собираются отслеживать присутствие (реализовать обратный вызов присутствия или включить присутствие на канале — зависит от того, как это обрабатывается SDK).

$grants = $pubnub->grant(true, true, 'sports,sports-pnpres', $auth_key, 0);

Этот пример кода показывает, как вы можете предоставить несколько каналов за один вызов.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]