ZBLOG

golang 实现一个http stream 服务器

下面是一个简单的Go语言实现HTTP Stream服务器的示例:

  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "net/http"
  6. )
  7. func streamHandler(w http.ResponseWriter, r *http.Request) {
  8. w.Header().Set("Content-Type", "text/event-stream")
  9. w.Header().Set("Cache-Control", "no-cache")
  10. w.Header().Set("Connection", "keep-alive")
  11. fmt.Fprintf(w, "data: %s\n\n", "Hello world!")
  12. f, ok := w.(http.Flusher)
  13. if !ok {
  14. http.Error(w, "Streaming unsupported!", http.StatusInternalServerError)
  15. return
  16. }
  17. for i := 0; i < 10; i++ {
  18. fmt.Fprintf(w, "data: %d\n\n", i)
  19. f.Flush()
  20. }
  21. }
  22. func main() {
  23. http.HandleFunc("/stream", streamHandler)
  24. log.Fatal(http.ListenAndServe(":8080", nil))
  25. }

在该示例中,我们定义了一个名为“stream”的处理程序,它设置了响应头以指示返回的内容为事件流,并使用Fprintf函数向客户端发送数据。 Flush方法确保将所有数据发送到客户端并清空缓冲区。

最后,在main函数中,我们注册了处理程序并启动了HTTP服务器。 当用户访问“/stream”时,将连接到Stream Handler并获得事件流数据。

要测试这个HTTP Stream服务器,请运行上述代码并访问http://localhost:8080/stream。 您可以使用curl命令来测试该服务器: curl -v http://localhost:8080/stream

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5157

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?