pusher api:如何检查连接是否已建立?
pusher api: how can I check if the connection is established?
我正在使用推送器接口,我想为推送器服务不可用的环境编写回退。我找不到检查推送器订阅是否正常的方法。
我试过了
$scope.channel.bind('pusher:error', function() {
console.log("pusher:error");
});
还有 pusher:subscription_error 但它什么都不做。
如有任何帮助,我们将不胜感激。
重要的是要强调 connection 和 subscription 之间的区别。
- 连接 是与 Pusher 的持久连接,所有通信都通过该连接进行。
- 一个订阅是一个数据请求。在 Pusher 中,这些由 channels 表示。订阅和相关数据使用已建立的连接,多个订阅在单个连接上多路复用。
要确定 Pusher 服务是否可访问,您应该检查连接状态。
但是,如果您看到这个,我也建议您联系 Pusher support,因为这不应该发生。
检测和查询连接状态
可以通过绑定到连接对象上的事件来检测连接状态。
pusher.connection.bind('state_change', function(states) {
var prevState = states.previous;
var currState = states.current;
});
您现在可以额外获取状态。
var currentState = pusher.connection.state;
完整的文档可以在这里找到:
https://pusher.com/docs/client_api_guide/client_connect#connection-states
问题中的示例似乎使用了 Angular,因此您需要从 $scope
获取对 connection
对象的引用。如果您使用的是 pusher-angular,那么 API 应该与普通的 Pusher 库相同。
订阅状态
您可以绑定两个事件来确定订阅的结果:
pusher:subscription_succeeded
pusher:subscription_error
使用这些的代码如下所示:
var channel = pusher.subscribe('my-channel');
channel.bind('pusher:subscription_succeeded', function() {
// Yipee!!
});
channel.bind('pusher:subscription_error', function() {
// Oh nooooos!
});
有关成功事件的文档可在此处找到:
https://pusher.com/docs/client_api_guide/client_events#subscription_succeeded
有关错误事件的文档可在此处找到:
https://pusher.com/docs/client_api_guide/client_events#subscription_error
我正在使用推送器接口,我想为推送器服务不可用的环境编写回退。我找不到检查推送器订阅是否正常的方法。
我试过了
$scope.channel.bind('pusher:error', function() {
console.log("pusher:error");
});
还有 pusher:subscription_error 但它什么都不做。
如有任何帮助,我们将不胜感激。
重要的是要强调 connection 和 subscription 之间的区别。
- 连接 是与 Pusher 的持久连接,所有通信都通过该连接进行。
- 一个订阅是一个数据请求。在 Pusher 中,这些由 channels 表示。订阅和相关数据使用已建立的连接,多个订阅在单个连接上多路复用。
要确定 Pusher 服务是否可访问,您应该检查连接状态。
但是,如果您看到这个,我也建议您联系 Pusher support,因为这不应该发生。
检测和查询连接状态
可以通过绑定到连接对象上的事件来检测连接状态。
pusher.connection.bind('state_change', function(states) {
var prevState = states.previous;
var currState = states.current;
});
您现在可以额外获取状态。
var currentState = pusher.connection.state;
完整的文档可以在这里找到: https://pusher.com/docs/client_api_guide/client_connect#connection-states
问题中的示例似乎使用了 Angular,因此您需要从 $scope
获取对 connection
对象的引用。如果您使用的是 pusher-angular,那么 API 应该与普通的 Pusher 库相同。
订阅状态
您可以绑定两个事件来确定订阅的结果:
pusher:subscription_succeeded
pusher:subscription_error
使用这些的代码如下所示:
var channel = pusher.subscribe('my-channel');
channel.bind('pusher:subscription_succeeded', function() {
// Yipee!!
});
channel.bind('pusher:subscription_error', function() {
// Oh nooooos!
});
有关成功事件的文档可在此处找到: https://pusher.com/docs/client_api_guide/client_events#subscription_succeeded
有关错误事件的文档可在此处找到: https://pusher.com/docs/client_api_guide/client_events#subscription_error