当前位置: 首页 > 知识库问答 >
问题:

使用HTTP Kit流连接/长轮询?

郭乐湛
2023-03-14

我试图使用一个永不关闭的HTTP流连接(这是Gnip合规流)。

我想使用HTTP工具包,但我无法让它工作。如果我传递:stream参数:

@(http/get "http://example.com/stream-connection" {:as :stream})

在请求关闭之前,响应不会返回(并且永远不会完成)。

有办法做到这一点吗?

我在clj-超文本传输协议上也试过了,运气不好。

共有1个答案

萧奇
2023-03-14

你有没有试过通过回调使其异步:

(http/get "http://example.com/stream-connection" {:as :stream}
              (fn [{:keys [status headers body error opts]}]
                ;; body is a java.io.InputStream
                (with-open [inp body]
                  (let [rdr (clojure.java.io/reader inp)]
                    (doseq [i (cheshire.core/parsed-seq rdr)]
                      (println i))))))

在我的理解中,连接一直挂起,直到它读取整个流为止(这是不连续的),所以这里不应该使用deref。相反,您应该使用异步回调和迭代流读取器。

 类似资料:
  • httpkit是精巧的java嵌入式http服务器,超快的启动速度(实测仅需80毫秒),是tomcat、jetty的完美替代方案。 使用方法 //起一个server实例int port = 7777;HttpServer server = HttpServer.bind(port);//设置上下文路径server.setContextPath("root");//设置controller类的扫描包

  • 问题内容: 使连接保持打开状态,直到发生事件。 python django http rest 问题答案: 显然,最常见的方法不是直接在django中进行,而是借助附加的守护程序(可能是因为,例如Apache在许多长寿命连接方面做得不好)。如今,nodejs + socketio对此非常流行(它甚至可以使用WebSockets)-您只需要找到一种在两种方法之间传递数据的好方法。如果它是单向的(例如

  • 问题内容: 我正在尝试使用php和jquery制作一个理论上的Web聊天应用程序,我已经阅读了有关长时间轮询和HTTP流的知识,并且设法运用了文章中介绍的大多数原理。但是,有两个主要问题我仍然无法解决。 长轮询 服务器将如何知道何时发送更新?是否需要连续查询数据库或有更好的方法? 使用HTTP流 在Ajax连接仍处于活动状态时,如何检查结果?我知道jQuery的ajax调用功能,但是如何在连接仍在

  • 本文向大家介绍HTTP长连接、短连接?相关面试题,主要包含被问及HTTP长连接、短连接?时的应答技巧和注意事项,需要的朋友参考一下 在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个W

  • 概述 8mm轴轮连接片专门设计了两个8mm直径的通孔,与8mm直径的轴配合。 您可以使用它作为连接件,8mm轴的支架,或构建机器人车的底盘。 参数 材质:6061铝 厚度:3mm 长度:90mm 宽度:12mm

  • 我有一个我真的无法解决的问题。所以我有一个kafka流,其中包含一些这样的数据: 我想用另一个值“bookingId”替换“adId”。此值位于csv文件中,但我无法真正弄清楚如何使其工作。 这是我的映射csv文件: 所以我的输出最好是这样的 该文件可以每小时至少刷新一次,因此它应该会接收对它的更改。 我目前有一个不适合我的代码: 代码只运行一次,然后停止,因此它不会使用csv文件转换kafka中