diff --git a/README.md b/README.md index 38b6d94..8b3dd55 100644 --- a/README.md +++ b/README.md @@ -129,14 +129,82 @@ RPC-сервис для вызова процедур из QLUA -- Lua-библ ### Запуск программы -В терминале QUIK в меню Lua-скриптов добавить скрипт `%PATH_TO_SERVICE%/service.lua`, где `%PATH_TO_SERVICE%` -- путь до папки с программой включительно (например, `D:/QUIK/lua/quik-lua-rpc`). +В терминале QUIK в меню Lua-скриптов добавить скрипт `%PATH_TO_SERVICE%/main.lua`, где `%PATH_TO_SERVICE%` -- путь до папки с программой включительно (например, `D:/QUIK/lua/quik-lua-rpc`). -Адрес, по которому доступен RPC-компонент, определяется в функции `OnInit` в первом аргументе метода `QluaService:start`. +Конфигурации точек подключения находятся в файле `%PATH_TO_SERVICE%/config.json`. -Адрес, по которому доступен компонент для рассылки событий (PUB/SUB), определяется в функции `OnInit` во втором аргументе метода `QluaService:start`. - -Вы можете использовать как оба компонента, так и один из них (передавая в качестве адреса для другого компонента `nil`). -На данный момент ZeroMQ под Windows не поддерживает IPC-абстракцию (`ipc://`), поэтому для транспортного уровня остаётся (`tcp://`). +Краткая справка по формату конфигурационного файла на примере: + +```javascript +{ + // Точки подключения. Может быть сколько угодно различных точек подключения. + "endpoints": [ + { + // Тип точки подключения: + // "RPC" -- для удалённого вызова процедур, + // "PUB" -- для рассылки событий терминала. + "type": "RPC", + // Признак активности/неактивности точки. Ненужные на данный момент точки можно деактивировать. + "active": true, + // TCP-адрес точки подключения. + // На данный момент ZeroMQ не поддерживает ipc-абстракцию под Windows, + // поэтому для транспорта остаётся TCP. + "address": { + "host": "127.0.0.1", + "port": 5560 + }, + // Секция настройки аутентификации для точки подключения. + "auth": { + // Механизм аутентификации ZeroMQ: + // "NULL" или пустая строка (нет аутентификации), + // "PLAIN" (пара логин/пароль без шифрования трафика), + // "CURVE" (ключевая пара и шифрование трафика). + "mechanism": "CURVE", + // Секция настройки PLAIN-аутентификации + "plain": { + // Список пользователей для точки подключения. + "users": [ + {"username": "test_user", "password": "test_password"} + ] + }, + // Секция настройки CURVE-аутентификации + "curve": { + // Серверная ключевая пара CURVE + "server": { + "public": "rq:rM>}U?@Lns47E1%kR.o@n%FcmmsL/@{H8]yf7", + "secret": "JTKVSB%%)wK0E.X)V>+}o?pNmC{O&4W4b!Ni{Lh6" + }, + // Список публичных CURVE-ключей пользователей + "clients": ["Yne@$w-vo}U?@Lns47E1%kR.o@n%FcmmsL/@{H8]yf7", + "secret": "JTKVSB%%)wK0E.X)V>+}o?pNmC{O&4W4b!Ni{Lh6" + }, + "clients": ["Yne@$w-vo