Я новичок в XMPP сервере. Я хочу сделать многопользовательское приложение чата.
Я установил Openfire, и чат один на один работает нормально, но я не могу создать конференцию (чат) и добавить в нее пользователей, используя PHP для многопользовательского чата.
Хотя я установил плагин службы MUC, доступный в openfire, но я не знаю, как реализовать службу MUC REST / HTTP с PHP.
Кто-нибудь может иметь какой-нибудь пример сценария PHP для службы MUC для создания комнаты чата и добавления пользователей в комнату чата?
Заранее спасибо
База справочной информации:
Базовая 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");
Других решений пока нет …