Обмен данными между плагином и внешней программой на сервере.

fait

Участник
Сообщения
4
Реакции
0
Здравствуйте.
Ищу оптимальный механизм для обмена данными между плагинами SourceMod и внешним приложением (С++, Python не важно).
Первоначально планирую использовать для обмена информацией с Телеграм и Steam ботом.
Знаю, что существует Telegram Core, но нужно будет не только отправлять сообщения, но и принимать их. Не хочется грузить сервер доп. опросами, хочу отправлять готовые данные.

Заниматься костылями вроде создания файлов и считыванием содержимого не хочется.
Была идея построить систему на сокетах, которые бы отправляли данные на localhost в виде UDP пакетов и также принимали. Внешняя программа соответственно слушала нужные порты и отвечала.
Ещё в голову приходили идеи взаимодействия плагинов через базу данных, но это тоже похоже на костыли.

Может быть есть простой и элегантный способ обмена данными с внешним приложением, который прошёл мимо меня, похожий на каналы (pipe) или очереди (queue) для приложений?
 

ykpon

Владыка
Сообщения
675
Реакции
399
Любая шина данных подойдет. В том числе и упомянутая очередь, типа рэббита. Или, как сказал @R1KO, unix socket и написанная поверх него шина.
Да даже рэдис подойдет с его pub/sub механизмом.
 

fait

Участник
Сообщения
4
Реакции
0
Спасибо за совет, а есть ли примеры реализации со стороны плагинов SourceMod?
Будет ли адекватно работать, если сервер на windows?
Сообщения автоматически склеены:

Любая шина данных подойдет. В том числе и упомянутая очередь, типа рэббита. Или, как сказал @R1KO, unix socket и написанная поверх него шина.
Да даже рэдис подойдет с его pub/sub механизмом.
Есть ли механизмы на уровне плагинов SourceMod или нужно будет писать модуль для MetaMod:Source?
Буду благодарен за ссылку на примеры или существующие исходники.
 

fait

Участник
Сообщения
4
Реакции
0
Спасибо за советы, надеялся обойтись только SourcePawn (с которым более или менее освоился), но вероятно придётся писать расширения, благо есть достаточно подробная статья: Writing Extensions - AlliedModders Wiki
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #8
Спасибо за советы, надеялся обойтись только SourcePawn (с которым более или менее освоился), но вероятно придётся писать расширения, благо есть достаточно подробная статья: Writing Extensions - AlliedModders Wiki
Теоретически можно и на павне через курл CURLOPT_UNIX_SOCKET_PATH
 
Сверху Снизу