Go语言实现SSE中转demo
文章概要:本文主要通过一个demo来介绍如何使用Go语言实现SSE中转。
本文内容来自:谷流仓AI - ai.guliucang.com
前提
- 已安装Go语言环境(参考这篇文章:Macbook安装Go以及镜像设置)
创建项目
- 创建项目目录
mkdir go-app && cd go-app
- 初始化项目
# 后面的模块名自己定义
go mod init example/user/go-app
创建文件
先看一下完成之后的目录结构:
go-app/
├─ go.mod
├─ http/
│ ├─ requests.go
│ └─ responses.go
└─ main.go
然后每个文件的代码如下:
- main.go
package main
import (
"example/user/go-app/http"
"github.com/gin-gonic/gin"
"log"
)
// 主函数:初始化并启动 Gin 框架的 HTTP 服务器,支持 /event-stream 的 POST 和 GET 请求。
func main() {
// 创建一个用于传递事件的通道
ch := make(chan string)
// 初始化并配置默认的 Gin路由器
router := gin.Default()
// 设置 POST /event-stream 的处理函数,用于处理 POST 请求
router.POST("/event-stream", func(c *gin.Context) {
http.HandleEventStreamPost(c, ch) // 处理 POST 请求的逻辑
})
// 设置 GET /event-stream