我有一个用JavaScript编写的应用程序,它利用rxjs库来处理异步数据。我想插入一个java后端,我找到了J2V8,它让我启动Node并从Java中与它通信。
对于同步任务,一切都很好,但是当我将rxjs Observable映射到RxJava Observable时,我得到(无声地吞下)“无效的V8线程访问”异常。
我明白为什么会出现这种情况。节点是单线程的,当我尝试推送我的异步响应时,可能正忙于做它自己的事情。
我想要实现的更广泛的观点是:
订阅活动到达Java =>订阅传递给NodeJS进行处理=> NodeJS回调Java以获取实际数据源=> Java将数据推送回NodeJS进行处理=> NodeJS将结果传递给原始Java订户。
特别是我想要的是关于如何将异步事件从Java推送到Node的一些建议。
编辑:回复有关我为什么要这样做的查询。我有一个NodeJS服务器可以完成我想要的一些JS数据源。我想添加一个Java数据源,它将使用websockets与NodeJS服务器通信。每个数据源都有一堆通用的请求/响应逻辑,因此我希望通过包含此逻辑的简短JS管道来汇集到达Java数据源的请求。我可以在Java中复制逻辑,但我试图避免编写并且必须用两种不同的语言维护相同的东西。
完全有可能我正在尝试做的事情是愚蠢的,但我处于原型阶段,所以我正在尝试。