Вот что я делаю в 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);
.subscribe()
, так что понятия не имею, что это должно делать.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
?
В любое время вы используете Присутствие вместе с Диспетчер доступа (бесплатно для всех учетных записей) в PubNub, когда вы предоставляете разрешения каналам, вам также необходимо предоставить доступ к этим каналам. -pnpres
коллеги, если клиенты собираются отслеживать присутствие (реализовать обратный вызов присутствия или включить присутствие на канале — зависит от того, как это обрабатывается SDK).
$grants = $pubnub->grant(true, true, 'sports,sports-pnpres', $auth_key, 0);
Этот пример кода показывает, как вы можете предоставить несколько каналов за один вызов.
Других решений пока нет …