我使用 Thrift 框架编写了一个客户端服务器程序,因为服务器是用 C# 编码的,而客户端是用 Java 编写的。我的问题是,如何使用 Thrift 制作消息侦听器?例如,我的程序有一个列表,当一个客户端连接到它时,服务器将它发送给每个客户端。如果我有三个客户端连接到服务器,并且其中一个修改了该列表(在服务器启动之前声明),我如何通知其余客户端该列表已被修改?
谢谢你。
这个问题已经以各种方式被问过多次。至少还有一张尚未解决的 JIRA 票证。
鉴于目前的现状,一般的答案是此时:没有内置方式,但确实有一些可行的替代方案:
选项#1:可以使用长轮询或类似机制来模拟它。当客户端位于浏览器中时,这尤其方便。
选项#2:如果客户端不在浏览器中,推荐的方法是让客户端启动自己的 Thrift 服务器,允许服务器创建一个返回到客户端的连接。
选项#3:关于@Rui 的评论:Thrift 既是序列化又是 RPC 框架。这提供了仅使用它的序列化部分并以不同方式传输消息的选项,甚至在 Thrift RPC 之外。我们用消息总线系统做到了这一点,而且效果很好。
| 归档时间: |
|
| 查看次数: |
892 次 |
| 最近记录: |