背景:
一段时间以前,我曾经参与过一个Java服务器-客户端应用程序的开发(建筑自动化是其范围)。第一次尝试中,我们使用Java编写了服务器和客户端,并通过Java RMI(远程方法接口)将它们连接起来。但后来我们认为,使用JavaScript编写客户端会更好,原因有很多(这里不再赘述)。
由于RMI在JavaScript和Java之间无法工作,我们使用WebSockets进行连接,实现了几乎实时的连接。那时候WebSockets还处于早期测试阶段,没有任何文档,许多功能也未被实现。针对协议部分,我编写了一个基于JSON的自定义RMI。我反序列化来自客户端的JSON对象,并使用java.lang.reflection查询自己的服务器应用程序,以获取客户端想要执行的方法。
所有这些都很好地工作,而且我使其相当通用,因此可以在运行时动态插入其他子类,我的RMI仍然能够访问它们。
简而言之:
我一直想知道是否有一种标准方法可以像RMI一样将Java连接到JavaScript(例如需要扩展某个接口,然后就能够使用JavaScript访问这些接口方法)。我不可能是第一个遇到这个问题的人。
对我自己来说:我是一名电气工程师,因此Java、JavaScript或Web技术总体上并不是我在大学里所学习的内容。当涉及到Java时,我知道自己在谈论什么,但对于JavaScript,我完全是一个新手。