Как акцептор обрабатывает сообщения в QuickFIX / J - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь построить торговый симулятор, который состоит из Брокер (клиент) -Рутер (акцептор) -Маркет (клиент). Документация на QuickFIX / J очень скудна. Я хотел бы знать подробнее:

Как сообщения обрабатываются в целом и есть ли у получателя какие-либо из готовых таблиц маршрутизатора?

  • Я хотел бы получить разъяснения по поводуМетоды toApp, fromApp и toAdmin и fromAdmin .

Эффективно, я бы хотел общаться между брокером (брокерами) и рынком (ами) через акцептор (маршрутизатор). Я знаю, что нет никакого готового решения для связи на основе тегов, и поэтому мне нужно было бы реализовать какой-то протокол для этого, но сначала мне нужно широкое понимание службы обмена сообщениями. Я прочитал и посмотрел на документацию, но она кажется мне немного абстрактной. Я хотел бы знать в понятных терминах, как клиент обрабатывает сообщения к получателю и от него, используя вышеуказанные методы, и наоборот.

Также, если есть какие-либо классы / объекты / методы, которые являются ключевыми в обработке сообщений и их реализации в простых терминах.

Также использует ли QuickFiX блокирующие, неблокирующие или асинхронные сокеты?

* ps Я уже создал 2 клиента и 1 получатель, и это прекрасно работает

** Я не зависим от языка, поэтому любые объяснения в других портах библиотеки quickFix будут полезны

1 Ответ

1 голос
/ 10 ноября 2019

Вот объяснение различных обратных вызовов: https://github.com/quickfix-j/quickfixj#creating-a-quickfixj-application

По сути, вам нужно реализовать эти методы в вашем приложении и делать все, что вы хотите, основываясь на желаемых тегах. Отправка сообщения в конкретный сеанс так же проста, как вызов

Session.sendToTarget

См. https://github.com/quickfix-j/quickfixj#sending-messages

Если вы чувствуете, что что-то из документации отсутствует, откройте запрос на выборку (предпочтительно)или проблема.

QFJ использует библиотеку MINA для связи, которая под капотом использует Java NIO (неблокирующий ввод-вывод). Однако вы можете использовать какую-то блокировку с помощью опции синхронной записи. См. SocketSynchronousWrites опция конфигурации.

...