通信客户端-服务器-客户端

Posted

技术标签:

【中文标题】通信客户端-服务器-客户端【英文标题】:Communication client-server-client 【发布时间】:2012-06-26 12:07:34 【问题描述】:

我对客户端和服务器之间的通信有疑问。

我想创建一个可以执行以下操作的 GWT 应用程序:

客户端 A 向服务器触发一个事件,然后服务器又向客户端 B 触发一个事件。 这里客户端 B 必须能够一直监听事件。

我想向连接的客户端 B 实时发送一些数据很少的事件。 那可能吗?如果是,我该怎么做?

谢谢

【问题讨论】:

【参考方案1】:

这里客户端 B 必须能够一直监听事件。

要让客户端等待数据,您可以使用 Comet [1](长期 HTTP 请求)或 WebSockets [2](如果目标 JS 运行时支持)。

[1]:http://code.google.com/p/gwt-comet/

[2]:http://code.google.com/p/gwt-ws/

【讨论】:

非常感谢,我认为这对我有帮助。我还有一个问题,彗星在服务器站点上是如何工作的? servlet 是否必须一直在 Web 服务器上运行?【参考方案2】:

here is one example当然,对于客户端和服务器之间的通信,您必须使用 Rpc(远程过程调用)。您可以通过 rpc 将数据作为序列化对象发送和接收

【讨论】:

感谢您的回复。我遇到的问题是两个客户端之间通过服务器进行的通信。这意味着客户端 A 触发必须通过服务器实时从客户端 B 接收的事件或消息。正常的 RPC 允许我从服务器获取序列化对象,但我需要从服务器获取消息而不发送请求。【参考方案3】:

只需将客户端 (A) 请求的结果存储在数据库中。并编写客户端代码以从数据库请求内容,在服务器中对其进行处理并将结果返回给客户端(在您的情况下为客户端 B)

【讨论】:

感谢您的回复,客户端 B 必须实时接收更改。这意味着没有请求。

以上是关于通信客户端-服务器-客户端的主要内容,如果未能解决你的问题,请参考以下文章

网络通信之server/client通信的实现

TCP通信的客户端代码实现,TCP通信的服务端代码实现

客户端-服务器多线程聊天应用程序。客户端到客户端的通信

使用分布式对象的客户端服务器通信

TCP通信

通信客户端-服务器-客户端