我有一个客户端和服务器都是用Java编写的,并且共享应该在彼此之间发送的Java类。我不确定我可以在移动设备上使用哪些库,因为我不知道Dalvik支持什么,RoboVM支持什么等等。在这种情况下,不确定Gluon Mobile能为我做什么。
具体来说,我有一个看起来像这样的文件:
class Data {
IntegerProperty int1 = new SimpleIntegerProperty(4);
ObjectProperty<Person> person = new SimpleObjectProperty();
ObservableList<Contact> contacts = FXCollections.observableArrayList();
// other properties
// also add the getters for the properties and the getters and setters for the values
}
Person
和Contact
与上面的类似 - 它们主要包含数据属性和一些添加和删除内部(私有)列表等的方法。基本上它们就像bean或POJO只有属性包装。这是需要在服务器和客户端之间发送的数据,但只有包装的值很重要 - 而不是绑定。这引出了关于序列化的观点:javaFX属性不是可序列化的,因此建议here使这样的类成为上面的可外化的,并写入和读取包装的值。
最终我不在乎我是否需要做这些自定义的东西(虽然它需要做很多工作)或者是否有办法绕过它。我需要客户端可以调用的服务器上的方法Data receiveDatafor(...)
,服务器获取Data data
并返回它。客户端和服务器都有自己与Data
对象无关的绑定。
目前我们在内部使用RMI用于桌面。我读到RMI不受支持,但它可能不是一个很好的选项,但它确实允许真正轻松地发送java对象。 JavaEE has websockets可以传输对象的二进制形式,但它是JavaEE,所以我猜不支持。我不反对JSONing并发送文本,但似乎更多的工作而不仅仅是序列化 - 可能是错误的。通信方法应支持加密,例如在发送密码时。我有什么选择?