Предоставить моим пользователям API в реальном времени, используя Pusher - PullRequest
0 голосов
/ 19 ноября 2011

Я использую Pusher , чтобы добавить функциональность в реальном времени в мое приложение. Есть ли способ предоставить моим пользователям функциональность в реальном времени через API? Я использую частные каналы и каналы присутствия, поэтому соединения с ними должны быть аутентифицированы. Кто-нибудь работал с Pusher и предоставлял своего рода API своим пользователям?

Я делаю это с помощью Rails 3.1.

1 Ответ

2 голосов
/ 20 ноября 2011

Решение здесь состоит в том, чтобы предоставить пользователям, которым вы хотите иметь доступ к вашим данным, свой app_key (, а не app_secret). Затем они могут подключиться к Pusher и попытаться подписаться на ваши каналы. Им нужно будет использовать JSONP аутентификацию , которая делает звонок на ваш сервер, где вы можете аутентифицировать запрос к частным или каналам присутствия .

Pusher.channel_auth_endpoint = 'http://yourserver.com/pusher_jsonp_auth';
Pusher.channel_auth_transport = 'jsonp';
var pusher = new Pusher('YOUR_APP_KEY');
var channel = pusher.subscribe('private-your-channel');
channel.bind('your_event', function(data) {
  // do something here with data
});

В вашей аутентификации вам нужно будет проверить реферера (домен), чтобы увидеть, предоставили ли вы им доступ к вашим данным вместе с тем, на что они подписываются.

Вы также можете обернуть этот JavaScript в своей собственной библиотеке, чтобы subscription_error (ошибка аутентификации) отключал клиента от Pusher.

Надеюсь, это поможет. Вы также всегда можете отправить электронное письмо на support@pusher.com.

...