我希望构建一个能够向客户端推送服务器的混合移动和桌面Web应用程序,但需要一些关于我应该研究或采取的优选技术和路线的建议。什么是处理服务器从后端回送到客户端层的现代且简单的方法?我还想补充一点,我没有使用过许多可能对这种情况有帮助的前端技术,但如果他们能完成工作,我们会很乐意尝试一些。
这是一个粗略的图表,显示了我想要实现的场景。更多细节和期望的流程如下。
1. Desktop-1是第一个登录,设置一些设置并控制下一个动作的人。
2.当未来客户端登录时,其他客户端将通过服务器推送通知,并且UI会更新以反映此情况。其他已加入的客户端现在正在等待Desktop-1执行的操作。
3. Desktop-1执行发送到后端的操作。
4.后端使用更新的数据向所有其他客户端发送推送消息,以便他们可以刷新反映新当前状态的UI。
5.执行操作的下一个是尚未转弯的客户端之一,并且该过程重复进行。
类似于回合制游戏。
•通过移动/桌面浏览器访问。
•一次只有一个客户端可以控制并且能够发出操作。
•我不希望有大量客户(大约10个),但学习任何可扩展的新技术都会很有趣。
•简单的用户界面 - 在外观和UI框架上没有真正的偏好。
到目前为止我所看到的可能使我的任务可行:
•之前完成了一些GWT应用程序,Vaadin看起来是一个有趣且合适的选择。也许为移动设备提供TouchKit UI,为桌面提供常规UI。
•Spring Boot,Bootstrap,带有WebSockets的Java后端或一些框架 - Errai / Atmosphere。
答案 0 :(得分:2)
我将从Vaadin的角度回答这个问题:
Vaadin非常适合这种情况,因为它可以满足您的所有要求。
使用正确的UI主题和布局,您可以获得不同客户端类型的响应式UI。
服务器推送已经存在,具有多级回退,具体取决于客户端功能。
实现自我(或使用插件)所需的唯一事情是将Desktop1的消息“广播”到所有其他消息,反之亦然。 为此,存在一些事件总线样式插件,它允许不同的客户端一起通信。
除非您在服务器上存储有关用户会话的过多信息,否则缩放对某些hunderd用户来说不是一个大问题。 但是,当您必须将消息发布到499个其他客户端时,这可能是带宽问题,具体取决于消息大小。 测试没问题,但499个客户的“广播”视频往往很慢。