Страница 1 из 1
		
			
				Список пользователей онлайн для web support, скрипт на PHP
				
Добавлено: 
Вт мар 24, 2015 1:06 pm 
				 259bit
				Добрый день. Стоит задача кастомизировать логику работы веб-суппорта. Возможно ли удаленному web-серверу (php) получить список пользователей онлайн?
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Вт мар 24, 2015 2:17 pm 
				 Алексей Пикуров
				Здравствуйте.
Можно, почему нет. Протокол открыт, с php-скрипта вы можете подключиться к серверу и через сокеты залогиниться и достать всё, что нужно.
Опишите подробнее вашу задачу.
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Вт мар 24, 2015 2:32 pm 
				 259bit
				Соединение посетителя сайта только с пользователями mychat, которые онлайн.
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Вт мар 24, 2015 3:02 pm 
				 Алексей Пикуров
				Вы хотите воспользоваться нашим WEB-суппортом или написать свой?
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Вт мар 24, 2015 3:25 pm 
				 259bit
				Собственно хотел немного модифицировать скрип вызова вашего суппорта.
То есть php-скриптом запросить список  пользователей онлайн, отфильтровать по своим нуждам и вставить в вызов вашего js скрипта.
Про протокол понял, буду изучать. Спасибо.
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Вт мар 24, 2015 4:50 pm 
				 Алексей Пикуров
				Я думаю, вам будет проще это сделать через Intergation API, чтобы не городить огород с соединением и авторизацией на сервере.
Я напишу простую функцию для вашей задачи и приведу пример. В версии 5.10 будет, ожидайте.
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Вт мар 24, 2015 4:57 pm 
				 259bit
				Спасибо!
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Вт мар 24, 2015 6:27 pm 
				 Алексей Пикуров
				Команда готова. Предварительное описание: 
http://nsoft-s.com/mcserverhelp/mcserv. ... uslist.htmСправка неполная, в процессе переделки, как и веб-админка, так что если будут вопросы - задавайте, я поясню.
 
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Вт мар 24, 2015 7:38 pm 
				 259bit
				Если я правильно понял, чтобы использовать Integration API, мне необходимо подключить к PHP mychat.dll?
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Ср мар 25, 2015 11:16 am 
				 Алексей Пикуров
				Нет, для этого mychat.dll не нужен.
Последовательность действий для работы с 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. 
 
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Ср мар 25, 2015 5:20 pm 
				 259bit
				Расскажите, пожалуйста, подробнее про MagicPacket - #23#6 (2 байта); Как мне его изобразить в php скрипте?
Гугл молчит как партизан.
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Ср мар 25, 2015 6:20 pm 
				 Андрей Раков
				Это 2 символа с кодом 23 и 6, вы их можете заменить юникод представлением, что-то вроде "\u0017\u0006"
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Ср мар 25, 2015 7:01 pm 
				 Алексей Пикуров
				К сожалению, у нас спецов по php нет, так сложилось. Поэтому придётся помучить гугл 

 
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Чт апр 02, 2015 3:31 pm 
				 259bit
				Большое спасибо за новый функционал, все получилось!
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Чт апр 02, 2015 3:54 pm 
				 Алексей Пикуров
				Пожалуйста. Может, поделитесь своим кодом для грядущих поколений?
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Чт апр 02, 2015 5:14 pm 
				 259bit
				Код: Выделить всё<?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);
    } 
  
?>
  
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Чт апр 02, 2015 5:16 pm 
				 Алексей Пикуров
				Спасибо. Я обернул ваш текст в phpbb тег code, чтобы читать стало удобнее (с отступами).
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Чт апр 02, 2015 5:20 pm 
				 Алексей Пикуров
				У вас есть опыт создания phpbb модов для форума phpbb?
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Чт апр 02, 2015 5:23 pm 
				 259bit
				Алексей Пикуров писал(а):У вас есть опыт создания phpbb модов для форума phpbb?
В данный момент нет,  да и желания его получить в целом тоже.
 
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Чт апр 02, 2015 5:27 pm 
				 Алексей Пикуров
				
 Просто мы недавно как раз занимались вопросом интеграции с phpbb, решение заработало, но хотелось бы его оформить отдельным модом для простоты, а не заставлять людей вкручивать наши исходники прямо в "боевой" работающий форум.
Ещё раз спасибо за исходник, наверняка он кому-то пригодится.
 
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Чт апр 02, 2015 7:26 pm 
				 SV
				Наверно лучше сообщение отделить в отдельную тему, что бы потом проще искать.
			 
			
		
			
				Re: Список пользователей онлайн для web support
				
Добавлено: 
Чт апр 02, 2015 7:39 pm 
				 Алексей Пикуров
				SV, какое именно сообщение?
			 
			
		
			
				Re: Список пользователей онлайн для web support, скрипт на PHP
				
Добавлено: 
Вт апр 07, 2015 5:20 pm 
				 SV
				
			 
			
		
			
				Re: Список пользователей онлайн для web support, скрипт на PHP
				
Добавлено: 
Чт апр 09, 2015 10:46 am 
				 Алексей Пикуров
				У нас планируется отдельный раздел на сайте для всевозможных интеграций MyChat с разными технологиями и софтом, там и разместим скрипт для отправки сообщений из php, немного модифицированный.
			 
			
		
			
				Re: Список пользователей онлайн для web support, скрипт на PHP
				
Добавлено: 
Чт сен 29, 2016 12:47 pm 
				 Алексей Пикуров
				Раздел справки для работы с MyChat Integration API: 
https://nsoft-s.com/mcserverhelp/index. ... ionapi.htmВся самая актуальная и свежая информация там.