zimplify/app-messenger

此包包含自动激活应用程序消息的功能,无需从头开始重新编写

dev-master 2020-01-26 01:51 UTC

This package is auto-updated.

Last update: 2024-09-26 11:42:13 UTC


README

此功能使您能够向对方发送消息,但不如RTC那样多。在实时模式下,需要考虑的额外因素包括:

  • 让对方知道正在输入数据
  • 消息在发送后就会被“传输”。因此,这种实现更像是在Facebook上看到的墙式消息。(一旦我们处理完其他功能,我们将尽快查看RTC选项...此外,我们需要设置一个WebSocket服务器来实现这一点...)

安装

通过Composer简单激活

composer require zimplify\app-messager

配置

此模块不需要特定的环境设置

用法

该模块包含一个主类名为Channel,其中包含参与者。每个参与者(如果群组是私有的 - 将检查参与者是否有权访问)将通过say()方法广播他们的消息。

在读取消息的情况下,有一个digest属性可以分页读取消息。其中每条消息(或Whisper)都包含一个wrote属性来指示消息是否来自用户,这样您就可以轻松地用它来格式化。

Channel类中的关键方法如下:

dismiss(IObjectAuthorInterface $participant, IObjectAuthorInterface $replacement = null)

此方法将$participant从通道中移除。如果$participant是通道的$moderator,则可以使用$replacement(或下一个最老的参与者)来代替其位置。如果$participant是通道中的最后一个,则整个通道将被销毁,以及其中所有的消息。

say(IObjectAuthorInterface $sender, string $message, File $attachment = null)

此方法向通道及其所有参与者广播消息。在下一个版本中,$sender将变得过时,因为它将通过withAudience()方法来处理。

withAudience(IObjectAuthorInterface $whisper)

此方法识别正在点击通道的人

withParticipant(IObjectAuthorInterface $participant)

将新的参与者添加到通道中。

withPrivacy(bool $mode)

设置通道是私有(当设置为true)还是公共(当设置为false)。在私有通道的情况下,所有消息都会被检查,并确保发送者在保存到通道之前是参与者。

withTitle(string $title)

设置通道的标题。在通道可以激活之前,标题是必需的。