gylraj/ejabberd

Ejabberd 使用 REST API 的实现

1.0.0 2017-11-26 11:17 UTC

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 声称将放弃对它的支持。
因此,基于一些简短的讨论……我们有三种可能性

  1. https://github.com/cloudadic/php-ejabberd 风格,但他们的代码是开始这个项目的起点
  2. 工厂模式:对于不熟悉 Ejabberd 服务器的用户来说,很难与之协同工作,并且在 IDE 中没有自动完成功能
  3. 代理:与上面相同:没有自动完成功能
  4. 特性:赢家!有很多包装器和许多方法,但我们应该将它们分成特性并重用可以重用的部分

增加免责声明

我真的需要这些功能,并且迫不及待地想要更新。我钦佩这个项目的所有者和创作者。我只是想测试我的技能并为缺少的 API 添加功能。