3

场景:用户登录客户端软件,与处理用户指定任务的服务器端实体(服务器)形成持久的双向连接。当服务器端实体在处理用户任务时遇到错误或需要用户进一步输入时,它会通知客户端软件,并等待客户端决定要做什么。客户端软件将采用新用户指定的输入并将其发送到服务器端。服务器端使用新用户指定的输入继续上次停止的位置。此反馈循环将持续到完成处理为止。逐步更新的用户输入将全部存储在服务器端,并可从客户端软件访问和修改。因此,如果客户端删除特定输入,该更改将立即反映在服务器端。

在客户端,我怀疑使用套接字连接到服务器......

现在对于服务器,我有点迷茫,因为似乎有许多不同的 Java 服务器,比如 Jetty 和 Netty。我也在练习谨慎,以免在这里尝试重新发明任何轮子。

构建服务器是正确的方法吗?还是构建一个可以按需完成特定任务的网络服务?

我也不只是在寻找一种万能的解决方案(可能是一厢情愿的想法),而是对我当前情况的任何见解持开放态度。

4

1 回答 1

2

Netty 将提供很多听起来像是你需要的东西,而不会让你重新发明一个套接字服务器。也就是说,我会确定您确实需要客户端和服务器之间的双向实时通信。如果您可以重新解决问题,使得客户端-服务器通信不需要是实时的,那么像 RESTful Web 服务之类的东西就成为可能,并且(根据我的经验)复杂性和错误率要低得多。

于 2011-06-13T18:56:02.040 回答