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

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

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

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

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

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

4

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

СООБЩЕНИЕ 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");
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]