zimplify / app-messenger
此包包含自动激活应用程序消息的功能,无需从头开始重新编写
dev-master
2020-01-26 01:51 UTC
Requires
- zimplify/core: dev-genmai
- zimplify/rest-server: dev-genmai
Requires (Dev)
- phpunit/phpunit: ^8.3
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)
设置通道的标题。在通道可以激活之前,标题是必需的。