gamenet/php-jabber-rpc

PHP 对 ejabberd xml-rpc 模块的封装

1.3.4 2016-07-19 09:56 UTC

This package is not auto-updated.

Last update: 2024-09-21 13:52:47 UTC


README

Build Status Latest Stable Version Code Coverage Scrutinizer Code Quality Latest Unstable Version License

关于

mod_xmlrpc 是一个用于 ejabberd 的模块,ejabberd 是一个用 Erlang 编写的 XMPP/Jabber 服务器。它启动一个 XML-RPC 服务器并等待外部请求。实现的调用包括统计信息和用户管理。这允许任何语言(如网站或管理工具)的外部程序与 ejabberd 通信以获取信息或进行更改,而无需了解 ejabberd 的内部结构。

一个使用示例是公司网站在网站上创建新用户时创建一个 Jabber 用户。通过 XML-RPC 与 Jabber 服务器接口而不是直接修改数据库的一些好处包括

  • 外部程序更简单,更容易开发和调试
  • 可以与不同机器上的服务器通信,甚至可以与互联网上的服务器通信

这个库是 php xmlrpc 模块的一个简单封装,用于简化从 php 使用 ejabberd mod_xmlrpc。PHP 代码基于 mod_admin_extra.erlmod_muc_admin.erl 源文件。

需求

PHP >= 5.4

安装

Composer

安装库的推荐方式是 composer。您可以在 Packagist 上查看 包信息

{
	"require": {
		"gamenet/php-jabber-rpc": "*"
	}
}

不使用 composer?

只需克隆存储库,并注意 GameNet 命名空间的自动加载。

使用

基本用法如下所示

    $rpc = new \GameNet\Jabber\RpcClient([
        'server' => 'http://127.0.0.1:4560',
        'host' => 'j.gamenet.ru',
        'debug' => false,
    ]);

    //Create 2 new users with name `Ivan` and `Petr` with password `someStrongPassword`
    $rpc->createUser('Ivan', 'someStrongPassword');
    $rpc->createUser('Petr', 'someStrongPassword');

    // Add each other in the contact list with group 'Friend'
    $rpc->addRosterItem('Ivan', 'Petr', 'Petr Ivanov', 'Friend');
    $rpc->addRosterItem('Petr', 'Ivan', 'Ivan Petrov', 'Friend');

    // Get contact list Ivan
    $contacts = $rpc->getRoster($username);