gylraj / ejabberd
Ejabberd 使用 REST API 的实现
1.0.0
2017-11-26 11:17 UTC
Requires
- php: >=5.6.0
- ext-json: *
- guzzlehttp/guzzle: ^6.2
This package is not auto-updated.
Last update: 2024-09-29 05:01:45 UTC
README
当前实现旨在通过使用它的新 API 功能,将 Ejabberd 集成到您的 PHP 实现
Ejabberd 已经提供了 XML RPC,但根据他们的文档,这将被他们更新的 REST 替代。尽管我在整个 packagist.org 存储库中进行了搜索,但我只找到了一个 (https://github.com/cloudadic/php-ejabberd),但这并不是最好的一个:在 composer.json 中没有正确要求 Guzzle,并且存在许多代码重复(尽管这可能对文档很有用)
安装
composer require gylraj/ejabberd composer install
使用方法
<?php require __DIR__ . '/vendor/autoload.php'; use Ejabberd\Rest\Client; $client = new Client([ 'apiUrl' => 'http://127.0.0.1:5280/api/', 'host' => 'chat.example.com' ]);
示例
// Add User $user = 'mumu'; $password = '123' $client->createAccount($user, $password); // Add a second User $user = 'mumu-friend'; $password = '123' $client->createAccount($user, $password); // Add Roster between the two $client->addRosterItem('mumu', "mumu-friend"));
更多示例放在 /examples 文件夹中
php examples/checkStatus.php
免责声明
当我使用这个包装器启动时,我对 PHP 中对 XMPP 的支持(或缺乏)感到惊讶。大多数库都是基于 RPC 的,而 Ejabberd 声称将放弃对它的支持。
因此,基于一些简短的讨论……我们有三种可能性
- https://github.com/cloudadic/php-ejabberd 风格,但他们的代码是开始这个项目的起点
- 工厂模式:对于不熟悉 Ejabberd 服务器的用户来说,很难与之协同工作,并且在 IDE 中没有自动完成功能
- 代理:与上面相同:没有自动完成功能
- 特性:赢家!有很多包装器和许多方法,但我们应该将它们分成特性并重用可以重用的部分
增加免责声明
我真的需要这些功能,并且迫不及待地想要更新。我钦佩这个项目的所有者和创作者。我只是想测试我的技能并为缺少的 API 添加功能。