Как создать чат и добавить пользователей в комнату в openfire, используя PHP

Я новичок в XMPP сервере. Я хочу сделать многопользовательское приложение чата.

Я установил Openfire, и чат один на один работает нормально, но я не могу создать конференцию (чат) и добавить в нее пользователей, используя PHP для многопользовательского чата.

Хотя я установил плагин службы MUC, доступный в openfire, но я не знаю, как реализовать службу MUC REST/HTTP с PHP.

Кто-нибудь может иметь какой-нибудь пример сценария PHP для службы MUC для создания комнаты чата и добавления пользователей в комнату чата?

Заранее спасибо

1 ответ

База справочной информации:

Базовая HTTP-аутентификация

Все конечные точки REST защищены базовой HTTP-аутентификацией.

Чтобы получить доступ к конечным точкам, необходимо отправить имя пользователя и пароль учетной записи администратора Openfire в запросе заголовка.

Например, заголовок: авторизация: Basic YWRtaW46MTIzNDU= (имя пользователя: admin / пароль: 12345)

Пример для клиента Джерси

Client c = Client.create(); c.addFilter(новый HTTPBasicAuthFilter(пользователь, пароль));

POST / mucservice / chatrooms Конечная точка для создания новой комнаты чата.

Полезная нагрузка: Chatroom Возвращаемое значение: HTTP статус 201 (Создан)

Возможные параметры

Параметр Тип параметра Описание Значение по умолчанию servicename @QueryParam Имя конференции службы группового чата Примеры

Заголовок: Авторизация: Basic YWRtaW46MTIzNDU =

Заголовок: Content-Type: application / xml

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

Пример полезной нагрузки 1 (обязательные параметры):

global-1 global Глобальный чат

Код 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");
Другие вопросы по тегам