hoa / irc
Hoa\Irc 库。
Requires
- hoa/consistency: ~1.0
- hoa/event: ~1.0
- hoa/exception: ~1.0
- hoa/socket: ~1.0
This package is auto-updated.
Last update: 2021-09-20 08:31:10 UTC
README
Hoa 是一套 模块化、可扩展 和 结构化 的 PHP 库。
此外,Hoa 致力于成为工业和学术界之间的桥梁。
Hoa\Irc
此库允许编写 IRC 客户端,并通过监听器和简单方法进行交互。
了解更多.
安装
使用 Composer,要将此库添加到依赖项中,您需要要求 hoa/irc
$ composer require hoa/irc '~0.0'
有关更多安装程序,请阅读源代码页面。
测试
在运行测试套件之前,必须安装开发依赖项
$ composer install
然后,运行所有测试套件
$ vendor/bin/hoa test:run
有关更多信息,请阅读贡献者指南。
快速使用
我们提供了一个简单客户端的快速概述,该客户端加入频道并与提及进行交互。接下来,我们将使用 WebSocket 服务器增强此客户端以接收外部消息。
与提及进行交互
Hoa\Irc\Client
提供以下监听器:open
、join
、message
、private-message
、mention
、other-message
、ping
、kick
、invite
和 error
。
为了连接到 IRC 服务器,我们必须使用一个套接字客户端,例如
$uri = 'irc://chat.freenode.net'; $client = new Hoa\Irc\Client(new Hoa\Socket\Client($uri));
然后,我们将附加我们的监听器。当连接打开时,我们将加入一个频道,例如使用 Gordon
用户名的 #hoaproject
$client->on('open', function (Hoa\Event\Bucket $bucket) { $bucket->getSource()->join('Gordon', '#hoaproject'); return; });
接下来,当有人提及 Gordon
时,我们将回答 什么?
$client->on('mention', function (Hoa\Event\Bucket $bucket) { $data = $bucket->getData(); $message = $data['message']; // do something with that. $bucket->getSource()->say( $data['from']['nick'] . ': What?' ); return; });
最后,运行客户端
$client->run();
包含 WebSocket 服务器
我们可以添加一个 WebSocket 服务器以接收外部消息并将它们转发到 IRC 客户端。因此,我们的程序开头将如下所示
$ircUri = 'irc://chat.freenode.net'; $wsUri = 'ws://127.0.0.1:8889'; $group = new Hoa\Socket\Connection\Group(); $client = new Hoa\Irc\Client(new Hoa\Socket\Client($ircUri)); $server = new Hoa\Websocket\Server(new Hoa\Socket\Server($wsUri)); $group[] = $server; $group[] = $client;
然后,我们将将 WebSocket 服务器接收到的所有消息转发到 IRC 客户端
$server->on('message', function (Hoa\Event\Bucket $bucket) use ($client) { $data = $bucket->getData(); $client->say($data['message']); return; });
最后,运行 IRC 客户端和 WebSocket 服务器
$group->run();
要向 WebSocket 服务器发送消息,我们可以使用 CLI 中的 WebSocket 客户端
$ echo 'foobar' | hoa websocket:client -s 127.0.0.1:8889
文档
Hoa\Irc
的黑客手册 包含有关如何使用此库及其工作方式的详细信息。
要本地生成文档,请执行以下命令
$ composer require --dev hoa/devtools $ vendor/bin/hoa devtools:documentation --open
更多文档可以在项目的网站上找到: hoa-project.net。
获取帮助
主要有两种方式获取帮助
- 在
#hoaproject
IRC 频道, - 在 users.hoa-project.net 的论坛上。
贡献
你想贡献力量吗?谢谢!详细的 贡献指南 解释了你需要知道的一切。
许可
Hoa 采用新 BSD 许可证 (BSD-3-Clause)。请参阅 LICENSE
以获取详细信息。