请检查这个要点并告诉我,出了什么问题?为什么我看不到我的消息?要点:https : //gist.github.com/cnaize/895f61b762a9f5ee074c如果简单,我有两个功能:func send(param martini.Params, r render.Render) { Ct.Msgs <- param["msg"] fmt.Printf("Sent: %v", param["msg"]) r.JSON(http.StatusOK, Response{"status": "ok"})}和watch功能:func watch(rw http.ResponseWriter, r render.Render) { var msg string ok := true for ok { select { case msg, ok = <-Ct.Msgs: rw.Write([]byte(msg)) fmt.Printf("Wrote: %v", msg) f, ok := rw.(http.Flusher) if ok { f.Flush() fmt.Println("Flushed") } else { r.JSON(http.StatusOK, Response{"status": "error", "descr": "CANT_FLUSH"}) return } } } r.JSON(http.StatusOK, Response{"status": "ok", "descr": "finished"})}为什么它不起作用?编辑:我已经更新了我的要点。现在在哪里:if i, err := rw.Write([]byte(msg)); err != nil { r.JSON(http.StatusOK, Response{"status": "error", "descr": err.Error()}) return} else { fmt.Printf("i: %v", i)}我有日志: Sent: hello i: 5 Wrote: hello Flushed但我什么也没看到。有什么想法吗?
1 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
冲洗工作。问题是 Chrome 的纯文本渲染器在显示任何内容之前等待完整的响应正文。强制内容类型为 html 以查看增量响应:
func watch(rw http.ResponseWriter, r render.Render) {
rw.Header().Set("Content-Type", "text/html")
// same code as before
}
- 1 回答
- 0 关注
- 349 浏览
添加回答
举报
0/150
提交
取消