【发布时间】:2015-12-24 07:51:30
【问题描述】:
我有一个 Web 应用程序需要不断写入(可能永远不会结束)到http.ResponseWriter,并将这些输出显示到 html 页面。是这样的:
func handler(w http.ResponseWriter, req *http.Request) {
switch req.Method {
case "GET":
for {
fmt.Fprintln(w, "repeating...")
}
}
}
我觉得 HTML 输出跟不上速度。
如果我想继续在http.ResponseWriter 上写作并尽可能快地在 HTML 上实时显示,那么实现这一目标的最佳方法是什么?
谢谢,
【问题讨论】:
-
这可以通过websocket 或 GOA(Good ol' AJAX)来实现。无论哪种方式,您只需将新数据附加到旧数据。
-
stream 可以通过 http,但是浏览器的 js 无法处理 http 部分接收到的响应,所以 websocket 或者一次又一次地发出 http 请求。
标签: web-applications go websocket webserver real-time