我有一个客户端和一个服务器,两者都是用 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
}
Run Code Online (Sandbox Code Playgroud)
Person与Contact上面类似 - 它们主要包含数据属性和一些用于添加和从内部(私有)列表中删除的方法等。基本上它们就像只是带有属性包装器的bean或POJO。这是需要在服务器和客户端之间发送的数据,但只有包装的值很重要,而不是绑定。这让我想到了关于序列化的问题:javaFX 属性不可序列化,因此在这里建议将上述类制作为可外部化的类,并写入和读取包装的值。
最终,我不在乎我是否需要做这些定制的事情(尽管这是很多工作)或者是否有解决方法。我需要在服务器上有一个客户端可以调用的方法Data receiveDatafor(...),服务器获取Data data并返回它。客户端和服务器各自具有与Data对象无关的绑定。
目前我们在桌面内部使用 RMI。我读到 RMI 不受支持,而且它可能不是一个很好的选择,但它确实允许非常轻松地发送 java 对象。JavaEE 有 websockets,可以传输对象的二进制形式,但它是 JavaEE,所以我猜不支持。我并不反对 JSON 处理和以文本形式发送,但它似乎比序列化需要更多工作 - 可能是错误的。通信方法应支持加密,例如发送密码时。我有什么选择?
在客户端-服务器通信方面,您可以查看 Gluon Connect 和 Gluon CloudLink。
胶子连接
一个开源库:
Gluon Connect 是一个客户端库,可简化将任何来源和格式的数据绑定到 JavaFX UI 控件的过程。它的工作原理是从数据源检索数据并将该数据从特定格式转换为可直接在 JavaFX UI 控件中使用的 JavaFX 可观察列表和可观察对象。
它也是 Charm 依赖项的一部分,因此在创建新的 Gluon 项目时已将其包含在内。
请参阅有关如何创建 FileProvider 或 RestProvider 的文档,以及 GluonConnectRestProvider示例。
正如文档已经提到的:使用 RestClient,您可以将 REST 端点“转换”为 ObservableList:
// create a RestClient to the specific URL
RestClient restClient = RestClient.create()
.requestMethod(RestClient.Method.GET)
.host("https://api.stackexchange.com")
.path("/2.2/errors");
// retrieve a list from the DataProvider
GluonObservableList<Error> errors = DataProvider
.retrieveList(restClient.buildListDataReader(Error.class));
// create a JavaFX ListView and populate it with the retrieved list
ListView<Error> lvErrors = new ListView<>(errors);
Run Code Online (Sandbox Code Playgroud)
Notes示例使用 Gluon Connect 来本地存储 Notes 和设置。
请注意,这些示例使用了 JavaFX POJO(即错误、注释和设置使用属性)。
Gluon 云联
Gluon CloudLink使企业和移动开发人员能够轻松地将不同的服务和应用程序连接在一起,从而实现移动应用程序、企业基础设施和云系统之间的双向通信。
数据存储在云中,您(作为管理员)可以通过仪表板访问它。
请参阅此处的相关文档。
查看 PWS-GluonCloudLink-Whiteboard示例webapp-mobile:在云(Pivotal Web Services)和移动客户端 ( ) 上运行的后端应用程序 ( ) 的完整演示mobile app。
在客户端,一旦获得有效的GluonClient,您就可以检索可观察的项目列表:
public GluonObservableList<Item> retrieveItems() {
GluonObservableList<Item> items = DataProvider.retrieveList(gluonClient.createListDataReader("items", Item.class));
return items;
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,在客户端中,您不处理 REST 端点、json 序列化……一切都只是 JavaFX 可观察值。与后端的连接是在 CloudLink 中通过 Dashboard 应用程序设置的,定义了 REST Connector。
| 归档时间: |
|
| 查看次数: |
786 次 |
| 最近记录: |