Golang中如何用Request.Context替换http.CloseNotifier实现Server Sent Event
Golang中如何用Request.Context替换http.CloseNotifier实现Server Sent Event 亲爱的Gophers们,
我已经实现了一个服务器发送事件代理,它依赖于http.CloseNotifier CloseNotify来关闭连接。但这个方法已被弃用!
我试图弄清楚如何使用Request.Context而不是http.CloseNotifier来实现断开连接
使用CloseNotifier的代码,在收到通知时直接返回:
// Listen to connection close and un-register messageChan
notify := w.(http.CloseNotifier).CloseNotify()
for {
select {
case <-notify:
return
default:
// On message
commands := <-messageChan
我能否简单地用Done通道替换notify通道?
done := r.Context().Done()
for {
select {
case <-done:
return
default:
...
我是Go语言的新手,不太确定是否完全理解"http.context"的概念。
来自法国南部的诚挚问候
更多关于Golang中如何用Request.Context替换http.CloseNotifier实现Server Sent Event的实战教程也可以访问 https://www.itying.com/category-94-b0.html
感谢,这个信息对我也很重要。我原本就怀疑是这样,但不太确定。这就是为什么我之前没有发表任何意见。
更多关于Golang中如何用Request.Context替换http.CloseNotifier实现Server Sent Event的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
你好Kamil,
我有一个可用的服务器发送事件代理实现。
我的问题(可能比较幼稚)是:
能否简单地用Done通道替换
notify通道?
Benoit
嗯
连接断开 - 禁用网卡
或者
禁用应用程序 - 禁用连接
能否捕获这些事件?
嗯,我认为问题在于 - 在客户端禁用网卡…
因为在Linux上的服务器不会断开连接。 ?
我一直在观看Fransec Campoy关于Context的《Just For Func》系列节目。
JustForFunc #9
JustForFunc #10
现在情况很清楚了!
我可以用r.Context().Done()通道来替换w.(http.CloseNotifier).CloseNotify()通道。
此致。

