Эта библиотека позволяет "общаться" торговым терминалам Evraon и Quik. Через нее можно получать информацию с бирж и отправлять заявки. Цель проекта проста: дать возможность пользователям Evraon торговать на Московской и Санкт-Петербургской биржах, а никак не повторение всего API Quik'a. То есть реализовано лишь то, что требуется в данный момент. Заявки на новый функционал не принимается, если это не касается непосредственно Эвраона.
Для начала неплохо бы понять, зачем они вообще нужны. К сожалению, нельзя торговать на биржах в обход Квика. И вот для того, чтобы иметь таки возможность торговать, придуман Lua API Квика. Это некая договоренность двух программ, как обмениваться информацией. Эти скрипты запускают два сокет сервера, к которым подключается программа, и начинается взаимная отправка и получение информации. При этом запросы от программы передаются непосредственно в Квик.
Скачайте на этой странице архив с версией, равной версии Evraon.
Если таковой нет, а у вас самая новая версия Evraon, то скачивайте самый верхний архив. Распакуйте его в любую папку.
Затем зайдите в Квик, выберите меню Сервисы -> Lua скрипты..., затем Добавить, выберите файл под названием Server.lua,
Открыть, нажмите Запустить. Все, теперь можно подключаться к серверу из программы Evraon, а вот и
инструкция, как это сделать.
Достаточно сделать ряд простых действий:
- Найдите в файле
config.jsonсекциюservers, там будет название опцииscriptNameсо значениемServer_2. В данном случаеServer_2является названием файла в папке lua (расширение.luaвconfig.jsonуказывать нельзя). - Измените опции согласно вашим предпочтениям. По умолчанию, дополнительный сокет сервер будет запущен на localhost'e (т.е. опции
responseHostnameиcallbackHostnameимеют значение127.0.0.1), а порты (опцииresponsePortиcallbackPort) равны15515для сервера запросов-ответов и15516для сервера коллбэков (данные, которые хочет отправить Квик). Порты не должны конфликтовать с уже указанными портами в файлеconfig.json - Добавьте
Server_2.luaв Quik и запустите. При этом необязательно запускатьServer.lua, если он вами не используется. Если используется и для него указаны другие порты, то, безусловно, можно запускать оба.
Все!
- Как добавить еще сервера?
Скопируйте файл Server_2.lua и сохраните его в той же папке под другим именем, например, MyBroker.lua.
В файле config.json в секции servers скопируйте текст внутри фигурных скобок
{"scriptName"..."responseHostname"..."responsePort"..."callbackHostname"..."callbackPort"...}, поставьте запятую после },
вставьте скопированный текст и измените в нем данные. Как минимум, нужно указать в scriptName название файла скрипта
(в примере это MyBroker), а в опциях портов указать любые свободные номера портов.
Такую процедуру можно делать столько раз, сколько серверов вам нужно.
Не забудьте, что responsePort и callbackPort не могут быть одинаковыми и повторяться в файле.
- Как обновляться на новые версии библиотеки и скриптов в частности?
В новых версиях будет меняться код скриптов и код config.json. Но если вы вносили изменения в config.json,
то сохраните в другом месте файл с вашими изменениями. После этого замените все старые файлы новыми.
Обратите внимание, что, возможно, в одном из обновлений содержимое Server_2.lua изменится и все созданные вами лично копии
этого файла потребуется пересоздать на основе обновленного файла.
Продолжаем. Отредактируйте файл config.json в соответствии с настройками из старого файла
(если не меняли ничего, делать ничего не надо). Процесс обновления завершен.
- Как сделать так, чтобы можно было подключаться к сокету из локальной сети WiFi с другого устройства?
Нужно указать в responseHostname и callbackHostname значение 0.0.0.0. Лучше так не делать и вот, почему.
Когда компьютер подключен к роутеру, то разрешение подключаться к нему извне (а именно это делает 0.0.0.0)
открывает доступ к нему всему миру при допущении, что роутер недостаточно хорошо защищен и настроен.
А так как при подключении к сокетам нет ни пароля, ни шифрования, открытый доступ всему миру открывает ваш Квик всем.
Т.е. если вы все же хотите подключаться из локальной сети, позаботьтесь о безопасности и верных настройках роутера.
- Как можно подключаться из локальной сети безопасно?
Просто подключайтесь к серверу Evraon, запущенному на вашем компьютере. responseHostname и callbackHostname должны быть равны
127.0.0.1. В таком случае подключение будет защищено логином и паролем, а само соединение между мобильной версией
и настольной будет зашифровано.
- Можно ли переименовать
Server_2.lua?
Да, только укажите новое имя в scriptName файла config.json.
- Можно ли переименовать
Server.lua?
Нет. Этот файл обязательно должен сохранить свое имя, потому что все остальные скрипты используют часть его кода.
- Создается папка
logs, зачем она?
Там пишется диагностическая информация и ошибки. Иногда полезно туда заглядывать в поиске чего-то необычного.