实时通信 | pusher 频道介绍(二)

什么是频道?

在编写实时应用程序时,您需要的是可在所有支持的平台上的所有应用程序中使用(和重用)的基础结构。 编写该基础结构会很有趣,但是如果您像我一样,您的工作就是构建和生产应用程序-您没有时间推出自己的实时解决方案。

您真正需要的是类似Pusher的名为“ Channels”的产品。 Channels是一个平台,它具有将实时通信纳入所有Web,移动和桌面应用程序所需的一切。

通道使用其简单的基于事件的API提供灵活的发布和订阅消息传递。

通过使用它们广泛的服务器库,您可以从服务器应用程序触发事件,并在客户端上监听这些事件。

特征

频道不仅仅是发布和订阅消息。

您可以创建和使用私人频道,以便只有授权用户才能订阅它们。 这意味着您需要对用户进行身份验证,并且可以将Channels身份验证与自己的身份验证方案无缝集成。

您还可以创建专用的专用渠道,称为在线渠道,让您看到订阅了特定渠道的用户,这使得构建协作应用程序,游戏以及您需要知道谁的任何其他类型的应用程序变得异常容易。在线。

 

作为平台,渠道可为您提供监视指标和警报所需的一切。 您可以查看有关通过通道发送的消息的各种度量标准,例如消息数,消息类型和大小。 您还将获得有关连接以及客户端如何连接到您的应用程序和Channels平台的信息。 您还可以将所有这些数据与其他第三方工具(如Datadog和Slack)集成。

当您遇到问题时,有可用的调试工具,并且支持Web挂钩,以便可以在Channel中发生事件时更新和通知服务器。 您也可以使用简单的查询API查询已连接用户的状态。

 

在单个频道上发布事件

在下面的示例中,在名为 my-channel 的通道上触发了一个名为 my-event 的事件。消息负载最终以简单的 JSON 消息 ${'{"message":"hello world"}'} 结束。

require __DIR__ . '/vendor/autoload.php';
$pusher = new Pusher\\Pusher('APP_KEY', 'APP_SECRET', 'APP_ID', array('cluster' => 'APP_CLUSTER'));
$response = $pusher->trigger('my-channel', 'my-event', array( 'message' => 'hello world'));

在多个频道上发布事件

在下面的示例中,一个名为 my-event 的事件被多个通道触发; my-channel-1、my-channel-2 和my-channel-3。 消息负载被转换为简单的 JSON 消息 ${'{"message":"hello world"}'}。

require __DIR__ . '/vendor/autoload.php';
$pusher = new Pusher\\Pusher('APP_KEY', 'APP_SECRET', 'APP_ID', array('cluster' => 'APP_CLUSTER'));
$pusher->trigger(
  ['my-channel-1', 'my-channel-2', 'my-channel-3'],
  'my-event',
  array( 'message' => 'hello world')
);

 

posted @ 2022-01-29 00:14  Tinywan  阅读(200)  评论(0编辑  收藏  举报