ReadTimeout, WriteTimeout,IdleTimeout and others
我只是在玩弄参数,以查看在哪种情况下使用SSE进行配置会更好,因此请遵循here中的结构 我只是添加一些打印以查看客户端何时连接以及何时断开连接,例如:
....
notify := rw.(http.CloseNotifier).CloseNotify()
fmt.Fprintf(w, "data: .\n\n") `//I add this because [onopen][3] won´t` fire if nothing is sent when start conecting
fmt.Println(" conecting")
for {
select {
case <-notify:
fmt.Println("closing")
return
default:
// Write to the ResponseWriter
// Server Sent Events compatible
fmt.Fprintf(rw, "data: %s\n\n", <-messageChan)
// Flush the data immediatly instead of buffering it for later.
flusher.Flush()
}
}
因此,如果我更改了,它唯一会显示“结束”的值是WriteTimeout
,但是读到this article时,这部分使我感到困惑:
最后,Go 1.8引入了IdleTimeout,它限制了服务器端的 保持活动连接在保持连接之前将保持空闲状态的时间 重复使用
但是正如我所说,即使我更改了IdleTimeout
,该客户端也不会关闭,是因为客户端第一次连接到我写的它,还是一个bug?
那我应该改变三个中的哪个?
Go版本:1.11.1