Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Restlet流数据

我正在执行一项任务,从设备读取数据,并通过web服务使其可用。数据每秒读取4次。我希望web客户端有一个开放的HTTP连接,只要客户端保持连接打开,就可以使用chunked transfer以流的形式获取设备读数

作为概念证明,我想从一个服务开始,它不断生成一个随机数,每秒4次,用json封装,并将其传输到客户端。我试图根据twitter streaming api.对其进行松散的建模

我正在使用restlet 2.1.2创建该Web服务,但我不确定应该使用哪种表示来实现这一点。我试着搜索这个,但没有找到任何有用的东西。有没有人能给我指出正确的方向,我应该使用什么,也许还有一些例子

谢谢


共 (1) 个答案

  1. # 1 楼答案

    为了实现您想要做的事情,我会使用WriterRepresentation(但请参见我的answer to your other question),但我很确定您走的是错误的架构方向

    实际上,以下图片来自您链接的文档

    enter image description here

    显示了即使是Twitter流媒体api也不打算由用户连接,而是由后台进程连接,这些进程在HTTP可访问的存储中下载消息。用户只轮询HTTP服务器,该服务器从存储读取消息并将消息发送回客户端

    作为一种断开连接的协议,HTTP实现了巨大的可扩展性,这在其他情况下是不可能的。如果每个客户端建立一个由专用服务器线程支持的持久TCP连接,您将迅速消耗服务器资源!此外,用户代理和服务器之间的任何HTTP代理都可能导致意外行为

    因此,如果您绑定到HTTP协议,用户代理应该轮询。您可以使用Last-Modified/If-Modified-SinceEtag/If-None-Match这样的头来减少网络负载

    但是,如果您可以采用不同的协议,我强烈建议您在连接的TCP协议上尝试使用服务总线