-1

这是一个关于产品开发技术决策的一般问题。我的目标是开发一个基于网络的远程支持(桌面共享应用程序),带有音频和视频通信。

我理想的解决方案是将其开发为网络产品,这意味着客户端始终在浏览器中运行。客户端技术是 JavaScript(使用Google GWT),对于桌面捕获、桌面呈现、音频和视频,我想使用Java 小程序

服务器端使用带有数据库后端(Hibernate和基于 SQL 的数据源)的Java Servlet技术运行。对于数据流,我的计划是通过 UDP 使用RTP / RTSP传输(对于桌面数据,内部协议将是 VNC(RFB),但传输将是 RTP 本身)。对于音频和视频,RTP 用于传输。

我的基本版本(原型)将使用中继服务器工作,这意味着客户端始终连接到服务器(登录、身份验证、会话控制)并且服务器始终在对等方之间中继数据。

我的问题是——我的技术决定是否正确?我的意思是,由于多平台支持,我决定使用纯 Java。现在我们有Silverlight,它具有更高级的桌面支持,但仅限于一个平台(Windows)。

我还担心 Java 对音频/视频技术的支持。我见过 JMF(Java Media Foundation),它似乎支持 RTP/RTSP、音频和视频捕获/显示,但这个包看起来非常过时。你怎么看待这件事?

对于实际的屏幕截图,我将从AWT Robot 类开始。我知道对于高性能桌面捕获需要更多低级技术,例如 API 挂钩或镜像驱动程序,但我的原型旨在为屏幕捕获提供 1 FPS,所以我相信 Java Robot 会成功。

4

2 回答 2

1

Java 小程序可以做到这一点,但现在它们有点过时了。用 Java 术语来说,现在您还可以选择Java Web Start(更好的 Google 关键字是 JNLP)和JavaFX。如果您不回避学习一门新语言并想拥有一个真正的RIA,那么请选择 JavaFX。否则,Java Web Start AKA JNLP 是一个不错的选择。使用 Java,您可以像客户端应用程序一样做所有事情,只要它都在安全限制的范围内。

以下是一些使用教程:JavaFX 教程Web Start 教程

于 2009-11-09T15:20:49.777 回答
0

您可能需要查看 Glue42(桌面集成平台)和Glue42 Core(开源 Web 应用集成平台)。Github 项目可在此处获得。这两种产品协同工作,使用 FDC3 标准集成桌面和 Web 应用程序。

于 2021-04-13T21:19:35.227 回答