deminy/xmpp

此包已被弃用且不再维护。没有建议的替代包。

一个用于与XMPP服务器通信的客户端库。

0.0.2 2014-12-16 22:43 UTC

This package is auto-updated.

Last update: 2020-03-13 01:39:11 UTC


README

在创建此存储库之前,我已经评估了以下PHP XMPP库

不幸的是,以上都没有提供我所需要的功能。这就是为什么我要基于Nikita的工作创建此存储库的原因。

功能

  • 以下功能已经从Nikita的分支提供
    • 连接并使用DIGEST-MD5进行身份验证,以对XMPP服务器进行操作(已测试Openfire和jabberd2)
    • 支持SSL/TLS连接
    • 允许加入MUC房间
    • 向个人和MUC房间发送消息。
  • 以下功能是我添加的,以及各种重构等
    • 使用PLAIN连接并身份验证。
    • XEP-0045(多用户聊天)相关实现,包括创建聊天室、销毁聊天室、授予成员、撤销成员和获取成员列表。

示例代码

use Xmpp\Xep\Xep0045 as xmpp;

$roomId = 'YourHouse';
$userId = 'Tom';

$options = array(
    'username'  => 'your_username',
    'password'  => 'your_password',
    'host'      => 'example.com',
    'ssl'       => false,
    'port'      => 5222,
    'resource'  => uniqid('', true),
    'mucServer' => 'conference.example.com', // optional
);
$xmpp = new xmpp($options, $logger);

$xmpp->createRoom($roomId);            // Create the room.
$xmpp->grantMember($roomId, $userId);  // Add a member to the room.
$xmpp->getMemberList($roomId);         // Get member list and there should be only one member.
$xmpp->revokeMember($roomId, $userId); // Remove the only member out from the room.
$xmpp->getMemberList($roomId);         // Get member list and there should be nobody in the room.
$xmpp->destroyRoom($roomId);           // Destroy the room.
$xmpp->disconnect();                   // Disconnect from the server. Important for heavy-loaded servers.

已知限制

  • 只实现了XEP-0045(多用户聊天)协议扩展的一部分。
  • 尽管代码遵循了FIG PSR标准进行重构/编写,但它仅在特定项目和环境中开发和测试。

致谢

  • Nikita的分支.
  • 同事Jose(大家都叫他Tachu)、Jakub和Jerry提供了宝贵的建议,帮助性能改进和测试。

许可证

MIT许可证。