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

时间:2015-01-30 09:42:26

标签: php xmpp openfire muc

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

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

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

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

先谢谢

1 个答案:

答案 0 :(得分:1)

基于帮助信息:

  

基本HTTP身份验证

     

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

     

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

     

E.g。标题:授权:基本YWRtaW46MTIzNDU =(用户名:admin /   密码:12345)

     

泽西客户端的示例

     

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

     

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

     

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

     

可能的参数

     

参数参数类型描述默认值   servicename @QueryParam群聊服务会议的名称   实例

     

标题:授权:基本YWRtaW46MTIzNDU =

     

标题:内容类型:application / xml

     

POST http://example.org:9090/plugins/mucservice/chatrooms

     

有效负载示例1(必需参数):

     

      全球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");
相关问题