Как я могу предоставить асинхронные данные для узла из Java с помощью J2V8

У меня есть приложение, написанное на JavaScript, которое использует библиотеку rxjs для обработки асинхронных данных. Я хотел подключить Java-бэкэнд и нашел J2V8, который позволяет мне запускать Node и общаться с ним из Java.

Для синхронных задач все хорошо, но когда я сопоставляю наблюдаемую rxjs и наблюдаемую в RxJava, я получаю (молча глотает) исключения "Неверный доступ к потоку V8".

Я понимаю, почему это так. Узел однопоточный и, вероятно, занят своими делами, когда я пытаюсь вставить свой асинхронный ответ.

Более широкий взгляд на то, чего я хочу достичь, выглядит примерно так:

Событие подписки поступает в Java => Подписка передается в NodeJS для обработки => NodeJS вызывает обратно в Java для фактического источника данных => Java отправляет данные обратно в NodeJS для обработки => NodeJS передает результаты исходному подписчику Java.

В частности, я хотел бы дать несколько советов о том, как я могу перенести асинхронные события из Java в Node.

Изменить: Чтобы ответить на вопросы о том, почему я пытаюсь это сделать. У меня есть сервер NodeJS, который делает то, что я хочу, с некоторыми источниками данных JS. Я хочу добавить источник данных Java, который будет взаимодействовать с сервером NodeJS с помощью веб-сокетов. Существует множество логик запросов / ответов, которые являются общими для каждого источника данных, поэтому я надеялся направить запросы, попадающие в источник данных Java, через короткий конвейер JS, содержащий эту логику. Я мог бы дублировать логику в Java, но я стараюсь избегать написания и поддерживать одно и то же на двух разных языках.

Вполне возможно, что то, что я пытаюсь сделать, это глупость, но я нахожусь в стадии прототипа, поэтому я экспериментирую.

0 ответов

Другие вопросы по тегам