updivision/

xmpp

XMPP协议(Jabber)连接库

0.6.1 2014-11-20 08:59 UTC

This package is not auto-updated.

Last update: 2024-09-20 20:16:26 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License Build Status Scrutinizer Quality Score Coverage Status Dependency Status

PHP的XMPP协议(Jabber)连接库

系统需求

  • PHP >= 5.3.3
  • psr/log
  • psr/log-implementation - 像monolog/monolog这样的日志(可选)

安装

初次使用Composer?请阅读简介。将以下内容添加到您的composer文件中

{
    "require": {
        "updivision/xmpp": "*"
    }
}

文档

此库使用一个对象来保存选项

use Updivision\Xmpp\Options;
$options = new Options($address);
$options->setUsername($username)
    ->setPassword($password);

服务器地址必须为tcp://myjabber.com:5222格式。如果服务器支持TLS,连接将自动加密。

您还可以传递一个PSR-2兼容的对象给选项对象

$options->setLogger($logger)

客户端管理到Jabber服务器的连接,并需要选项对象

use Updivision\Xmpp\Client;
$client = new Client($options);
// optional connect manually
$client->connect();

发送数据时,只需传递一个实现Updivision\Xmpp\Protocol\ProtocolImplementationInterface的对象即可

use Updivision\Xmpp\Protocol\Roster;
use Updivision\Xmpp\Protocol\Presence;
use Updivision\Xmpp\Protocol\Message;

// fetch roster list; users and their groups
$client->send(new Roster);
// set status to online
$client->send(new Presence);

// send a message to another user
$message = new Message;
$message->setMessage('test')
    ->setTo('nickname@myjabber.com')
$client->send($message);

// join a channel
$channel = new Presence;
$channel->setTo('channelname@conference.myjabber.com')
    ->setNickName('mynick');
$client->send($channel);

// send a message to the above channel
$message = new Message;
$message->setMessage('test')
    ->setTo('channelname@conference.myjabber.com')
    ->setType(Message::TYPE_GROUPCHAT);
$client->send($message);

最后,您应该断开连接

$client->disconnect();

开发

如果您喜欢这个库并希望贡献,请确保单元测试和集成测试正在运行。Composer将帮助您安装正确的PHPUnit和Behat版本。

composer install --dev

之后

./vendor/bin/phpunit -c tests
./vendor/bin/behat --config=tests/behat.yml --strict

新功能都应该使用Behat进行测试。

许可证

BSD-2-Clause。请参阅许可证

待办事项

  • 更好地整合频道
  • 服务器地址的工厂方法
  • 改进文档