Как я могу предоставить асинхронные данные для узла из 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, но я стараюсь избегать написания и поддерживать одно и то же на двух разных языках.
Вполне возможно, что то, что я пытаюсь сделать, это глупость, но я нахожусь в стадии прототипа, поэтому я экспериментирую.