我正在使用推送器界面,我想为推送器服务不可用的环境编写一个后备.我找不到一种方法来检查推送器订阅是否正常.
我试过这个
$scope.channel.bind('pusher:error', function() {
console.log("pusher:error");
});
Run Code Online (Sandbox Code Playgroud)
还有推送器:subscription_error但它什么也没做.
任何帮助将不胜感激.
突出连接和订阅之间的区别非常重要.
要确定是否可以访问Pusher服务,您应该检查连接状态.
但是,如果你看到这个,我也建议联系Pusher支持,因为这不应该发生.
可以通过绑定到连接对象上的事件来检测连接状态.
pusher.connection.bind('state_change', function(states) {
var prevState = states.previous;
var currState = states.current;
});
Run Code Online (Sandbox Code Playgroud)
您现在可以额外获得州.
var currentState = pusher.connection.state;
Run Code Online (Sandbox Code Playgroud)
有关此内容的完整文档可在此处找到:https: //pusher.com/docs/client_api_guide/client_connect#connection-states
问题中的示例似乎使用Angular,因此您需要从中获取connection对象的引用$scope.如果您使用的是推杆角度,那么API应该与普通的Pusher库相同.
您可以绑定到两个事件以确定订阅的结果:
pusher:subscription_succeededpusher:subscription_error使用这些代码的代码如下:
var channel = pusher.subscribe('my-channel');
channel.bind('pusher:subscription_succeeded', function() {
// Yipee!!
});
channel.bind('pusher:subscription_error', function() {
// Oh nooooos!
});
Run Code Online (Sandbox Code Playgroud)
有关成功事件的文档,请访问:https: //pusher.com/docs/client_api_guide/client_events#subscription_succeeded
有关错误事件的文档可在此处找到:https: //pusher.com/docs/client_api_guide/client_events#subscription_error