Схема работы достаточно простая.
Есть процедура mcSendDataToMyChat. У неё два параметра, число
iCmd типа DWORD и строка
sJSONData типа WideString в формате JSON.
iCmd - это команда, которую следует выполнить, список констант находится в модуле mcClientAPI.pas
Все константы, которые касаются этой процедуры, начинаются с
MCC_Send....
mcSendDataToMyChat - это процедура, которая отправляет данные запроса на сервер. Когда будет получен ответ от сервера, произойдёт соответствующее событие и будет вызвана
procedure mcEvent в вашей DLL библиотеке.
В примере так и сделано:
Код: Выделить всёprocedure mcEvent(iCmd: DWORD; sJSONData: WideString);safecall;
begin
case iCmd of
MCC_On_LoginSucess: mcSendDataToMyChat(MCC_Get_ChannelsList, '');
MCC_On_ChannelsList: ShowMessage(sJSONData);
end;
end;
getchannelslistplugin.png
На успешный логин мы отправляем серверу команду получения списка текстовых конференций. Команда отправляется без параметров. Когда с сервера придёт ответ, мы выведем полученный JSON объект на экран. Формат описан в
протоколе MyChat, команда
8008 sc_get_channels_listАрхив клиента и сервера:
http://www.nsoft-s.com/work/mychat.zip, обновить, чтобы заработал пример.
Исходные тексты примера для Delphi XE3:
http://www.nsoft-s.com/mychat/clientplu ... nflist.zip