我想开发一个服务器将大量数据推送到客户端的应用程序。 (每20毫秒20 kb)500kbps。所有数据都是double / float值。
我正在尝试回答这个问题,如果桌面应用程序(Java Swing应用程序)有固有内容,那么与使用http推送数据的Web应用程序相比,这将成为此用例的更好选择。
Java swing应用程序是否存在以及如何从服务器到客户端进行数据传输,这使得它们与Web应用程序(tomcat作为app server ...客户端的JS)相比更快。
如果我说网络服务器和应用程序在同一个本地网络上,答案会有所不同。
答案 0 :(得分:2)
我的投票是桌面版,但我偏见(当你拥有的唯一工具是锤子......)
我的第一个想法是线程和自定义网络。您可以根据需要获得推送和拉取协议的额外好处(是的,您可以在Web环境中获得此功能,但Java是为此而设计的,AJAX一直在考虑此需求)
我还推出了一个多样化且可自定义的UI工具包,但有人可能会说你可以使用HTML来实现这一点,但我个人认为,Swing工具包可以更快地运行并运行。更容易维护,恕我直言。
缺点是需要在每台客户端计算机上安装应用程序并处理更新
无论如何,这是我的一般意见,希望有所帮助
另一个问题是,该应用需要做什么?
答案 1 :(得分:1)
UI不太可能同时显示1000米。用户很可能一次只看少量的米。仅需要针对屏幕上显示的仪表更新UI。这应该大大减少负荷。假设网络和桌面应用程序的网络和缓存数据库组件大致相同,那么真正的差异化因素就是图表/图表的呈现速度,以及人们倾向于使用它的频率和频率。
MadProgrammer对原型设计的建议是有道理的。从原型中获得的测试数据将回答性能问题。
基于网络将更有用/更有价值,因为它可以在任何台式机,平板电脑或智能手机上使用。我假设希望随时随地将数据放在尽可能多的用户面前。此外,我不认为人眼可以检测到20ms的更新。你可能会延长,用户甚至不会注意到它。电影大约每秒25帧,即40ms /帧。
您预计会有多少并发用户?我不认为这会影响解决方案,因为两者都可以扩展。