首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以检查(服务器端)是否出现了laravel-websockets通道?

是否可以检查(服务器端)是否出现了laravel-websockets通道?
EN

Stack Overflow用户
提问于 2019-08-29 19:28:56
回答 1查看 723关注 0票数 2

我正在使用Laravel-Websockets向android设备发送事件。为了发送事件,我触发了laravel事件,比如

代码语言:javascript
复制
event(new ExampleEvent($message, $channel));

并且$channel定义了用于广播事件的频道名。一个通道只适用于一个设备。因此最多有一个设备在监听一个通道。

在我的webapp上,我想要显示哪些android设备是在线的。我的想法是检查特定设备的通道是否被占用。

是否可以检查通道是否被占用?

EN

回答 1

Stack Overflow用户

发布于 2019-08-29 21:29:29

可以使用HTTP API找出频道是否有活动订阅(是否被占用)。您可以使用Get channels端点,如下所示。这将返回当前存在的频道的完整列表(因此已被占用)。

https://pusher.com/docs/channels/server_api/http-api#application-channels

您可以定期轮询此终结点,并存储在服务器上作为占用返回的通道列表。

最后,为了不需要频繁地轮询API,您可以通过设置一个通道存在事件webhook来接收自上次轮询API以来已被占用或空闲的通道的更新。您可以在帐户仪表板中的Channels应用程序的"webhooks“选项卡中执行此操作:

https://pusher.com/docs/channels/server_api/webhooks

a)当一个频道从0个订阅者变为1个订阅者时,它将会存在,并且channel_occupied webhook将被触发。您可以在服务器上捕获此事件,并将其添加到占用的通道列表中。

https://pusher.com/docs/channels/server_api/webhooks#channel-occupied

b)当频道从至少有1个订阅者变为0个订阅者时,该频道将不复存在,您将收到channel_vacated事件。您可以从占用的频道列表中删除腾出的频道:

https://pusher.com/docs/channels/server_api/webhooks#channel-vacated

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57709194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档