如何使用PHP在openfire中创建聊天室并将用户添加到房间中

Vai*_*jan 5 php xmpp openfire muc

我是 XMPP 服务器的新手。我想制作多用户聊天应用程序。

我已经安装了 Openfire,一对一聊天工作正常,但我无法创建会议(聊天)房间并使用 PHP 将用户添加到房间中进行多用户聊天。

虽然我已经安装了 openfire 中可用的 MUC 服务插件,但我不知道如何使用 PHP 实现 MUC 服务 REST/HTTP。

任何人都可以为 MUC 服务提供一些示例 PHP 脚本来创建聊天室并将用户添加到聊天室吗?

提前致谢

ngu*_*ran 1

根据帮助信息:

基本 HTTP 身份验证

所有 REST 端点均受基本 HTTP 身份验证的保护。

要访问端点,需要在标头请求中发送 Openfire 管理员帐户的用户名和密码。

例如标头:授权:基本 YWRtaW46MTIzNDU=(用户名:admin / 密码:12345)

泽西岛客户端示例

客户端c = Client.create(); c.addFilter(new HTTPBasicAuthFilter(用户,密码));

POST /mucservice/chatrooms 端点以创建新的聊天室。

负载:聊天室 返回值:HTTP 状态 201(已创建)

可能的参数

参数 参数类型 说明 默认值 servicename @QueryParam 群聊服务会议名称 示例

标头:授权:基本 YWRtaW46MTIzNDU=

标头:内容类型:application/xml

发布http://example.org:9090/plugins/mucservice/chatrooms

负载示例1(必填参数):

global-1 全球 全球聊天室

PHP 代码将是(使用 MUCservice 版本 0.2.3 Openfire 3.10.0 进行测试):

function createRoom($naturalName, $roomName, $description) {
    $url = "http://localhost:9090/plugins/mucservice/chatrooms";
    $data = "<chatRoom>
                <naturalName>$naturalName</naturalName>
                <roomName>$roomName</roomName>
                <description>$description</description>
            </chatRoom>";
    $username = "admin";
    $password = "12345";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_PORT, "9090");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_HTTPHEADER,
                     array('Content-Type: application/xml',
                           'Authorization: Basic '.base64_encode("$username:$password")));
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $res = curl_exec($ch);
    echo "code " . $code;
    print_r($res);
    curl_close($ch);
}

createRoom("room", "room", "room");
Run Code Online (Sandbox Code Playgroud)