Можно, почему нет. Протокол открыт, с php-скрипта вы можете подключиться к серверу и через сокеты залогиниться и достать всё, что нужно.
Опишите подробнее вашу задачу.
Чат со мной
Чат со мной
То есть php-скриптом запросить список пользователей онлайн, отфильтровать по своим нуждам и вставить в вызов вашего js скрипта.
Про протокол понял, буду изучать. Спасибо.
Я напишу простую функцию для вашей задачи и приведу пример. В версии 5.10 будет, ожидайте.
Чат со мной
Справка неполная, в процессе переделки, как и веб-админка, так что если будут вопросы - задавайте, я поясню.
Чат со мной
Последовательность действий для работы с IntegrationAPI сильно упрощена.
- Открываете сокет-соединение с сервером MyChat по TCP 2004 (или другим, если у вас сервер настроен не на 2004 порт).
- Отправляете строку "mc5.0" и добавляете в конец CRLF (#13#10). Всего 7 байт.
- Читаете из сокета то, что шлёт сервер, сообщение заканчивается CRLF (#13#10). Можно это не анализировать, если вам это не нужно.
- Отправляете на сервер свой пакет. Пакет сформирован вот так:
MagicPacket + cs_integration_api + IntToHex(iFlag, 2) + IntToHex(iCmd, 4) + JSONobj.AsJSon + CRLF
MagicPacket - #23#6 (2 байта);
cs_integration_api - "0077" (4 байта);
iFlag - десятичное 48;
IntToHex(iCmd, 4) - для вашего случая это команда "000F" (4 байта);
JSONobj.AsJSon - JSON объект, описан в справке;
CRLF - 2 байта, #13#10. - ожидаете ответа от сервера, читаете сокет и парсите то, что пришло.
ответ - это MagicPacket + JSON объект + CRLF.
Чат со мной
Гугл молчит как партизан.
Чат со мной
Чат со мной
<?php
$address = 'localhost'; //Адрес сервера
$port = 2004; //Порт работы сервера
if (($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) { //Создаем сокет
//AF_INET - семейство протоколов
//SOCK_STREAM - тип сокета
//SOL_TCP - протокол
echo "Ошибка создания сокета";
};
$result = socket_connect($socket, $address, $port); //Подключаемся к серверу
$msg_to_server = "mc5.0\r\n"; //Сообщение приветствия
socket_write($socket, $msg_to_server, strlen($msg_to_server)); //Отправляем серверу сообщение
$msg_from_server = socket_read($socket, 1024); //Обязательно читаем сообщение от сервера
//Составляем пакет для запроса
$unicode_magik_packet = '\u0017\u0006'; //Волшебный пакет
$magik_packet = json_decode('"'.$unicode_magik_packet.'"'); //Кодируем в json
$cs_integration_api = "0077";
$iFlag = "48";
$iCmd = "000F";
$CRLF = "\r\n";
$json_string = ('{"UINS":"8,10","ServerKey":"iddqd"}');
$msg_to_server = $magik_packet.$cs_integration_api.$iFlag.$iCmd.$json_string.$CRLF;
socket_write($socket, $msg_to_server, strlen($msg_to_server)); //Отправляем серверу сообщение
$out_source = socket_read($socket, 1024); //Читаем сообщение от сервера
$out_replace = str_replace($magik_packet,"",$out_source); //вырезаем магический пакет
$out_array = json_decode($out_replace,true); //конвертируем json в массив
print_r($out_array); //смотрим что получилось
if (isset($socket)) { //закрываем подключение
socket_close($socket);
}
?>
Чат со мной
Чат со мной
Алексей Пикуров писал(а):У вас есть опыт создания phpbb модов для форума phpbb?
В данный момент нет, да и желания его получить в целом тоже.
Ещё раз спасибо за исходник, наверняка он кому-то пригодится.
Чат со мной
Чат со мной
Чат со мной
Вся самая актуальная и свежая информация там.
Чат со мной