当前位置: 首页 > news >正文

河西网站建设制作网站引导页是什么问题

河西网站建设制作,网站引导页是什么问题,十二师建设局网站,南宁小程序建设Go语言实现SSE中转demo 文章概要#xff1a;本文主要通过一个demo来介绍如何使用Go语言实现SSE中转。 本文内容来自#xff1a;谷流仓AI - ai.guliucang.com 前提 已安装Go语言环境#xff08;参考这篇文章:Macbook安装Go以及镜像设置#xff09; 创建项目 创建项目目录…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 mainimport (example/user/go-app/httpgithub.com/gin-gonic/ginlog )// 主函数初始化并启动 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 的处理函数用于处理 GET 请求router.GET(/event-stream, func(c *gin.Context) {http.HandleEventStreamGet(c, ch) // 处理 GET 请求的逻辑})// 启动 HTTP 服务器并监听端口 9990记录启动失败的错误日志log.Fatalf(error running HTTP server: %s\n, router.Run(:9990)) } 创建http目录并创建文件 requests.go package httpimport (errorsfmtgithub.com/gin-gonic/ginio )// EventStreamRequest 结构体定义了事件流请求的数据模型 type EventStreamRequest struct {Message string form:message json:message binding:required,max100 // 请求中必须提供的消息内容最大长度为100 }// HandleEventStreamPost 处理POST方法的事件流请求 // c: Gin框架的上下文对象用于处理HTTP请求和响应 // ch: 用于事件流通信的通道将请求消息发送到此通道 func HandleEventStreamPost(c *gin.Context, ch chan string) {var request EventStreamRequest// 尝试绑定请求数据到EventStreamRequest结构体if err : c.ShouldBind(request); err ! nil {// 如果绑定失败生成错误响应并返回errorMessage : fmt.Sprintf(request validation error: %s, err.Error())BadRequestResponse(c, errors.New(errorMessage))return}// 将请求消息发送到通道ch - request.Message// 创建成功响应并返回CreatedResponse(c, request.Message)return }// HandleEventStreamGet 处理获取事件流的请求。 // c: Gin框架的上下文对象用于处理HTTP请求和响应。 // ch: 一个字符串类型的通道用于向客户端发送事件消息。 func HandleEventStreamGet(c *gin.Context, ch chan string) {// 使用Stream方法来建立一个服务器端事件流不断检查通道中是否有新消息。c.Stream(func(w io.Writer) bool {// 如果通道中有消息通过SSEvent方法以message事件类型发送到客户端。if msg, ok : -ch; ok {c.SSEvent(message, msg)return true // 表示继续发送下一个事件}return false // 表示没有更多事件结束流})return } reponses.go package httpimport (github.com/gin-gonic/ginnet/http )// JSendFailResponse 定义了一个失败响应的结构体包含状态和数据字段 type JSendFailResponse[T any] struct {Status string json:status // 响应状态Data T json:data // 响应数据这里泛型T可以是任意类型 }// JSendSuccessResponse 定义了一个成功响应的结构体包含状态和可选的数据字段 type JSendSuccessResponse[T any] struct {Status string json:status // 响应状态Data T json:data,omitempty // 响应数据成功时可选 }// BadRequestResponse 用于处理Bad Request错误返回400状态码和错误信息 func BadRequestResponse(c *gin.Context, error error) {c.JSON(http.StatusBadRequest,JSendFailResponse[string]{Status: fail, // 设置响应状态为失败Data: error.Error(), // 将错误信息填入数据字段},)return }// CreatedResponse 用于处理创建资源的成功响应返回201状态码和创建的资源信息 func CreatedResponse[T interface{}](c *gin.Context, i *T) {c.JSON(http.StatusCreated,JSendSuccessResponse[T]{Status: success, // 设置响应状态为成功Data: *i, // 填入创建的资源信息},)return } 运行程序 启动项目 go run main.go开一个终端运行以下命令 监听数据 curl http://localhost:9990/event-stream打开另一个终端运行以下命令发送数据 curl -d {message:Hello, Event Stream!} -H Content-Type: application/json -X POST http://localhost:9990/event-stream观察第一个终端可以看到数据已经发送过来了 event:message data:Hello, Event Stream!
http://www.w-s-a.com/news/505139/

相关文章:

  • 卖网站链接东营住房和城乡建设信息网
  • 网站后台如何上传ico图标单位建设网站需要的材料
  • 如何建淘客网站郑州做网站最好的公司
  • 连锁酒店网站方案o2o网站建设方案
  • 功能型网站响应式网站原理
  • 聊城建设网站骨干校 建设网站
  • 网站建设与管理是干嘛的中国新闻社是什么单位
  • 帮别人做视频剪辑的网站传业做微采商城网站
  • 设计一个网站开发方案宣传片制作企业
  • 新网站收录多少关键词免费一键网站
  • 网页制作与网站建设 在线作业手表网站制作照片
  • 电商网站开发技术与维护重庆建筑工程交易信息网
  • 人和马做的网站线上营销推广方式
  • 青海教育厅门户网站有赞商城
  • 网站建设多语种自动翻译插件wordpress谷歌翻译插件
  • 泰安高级网站建设推广wordpress教程 好看
  • 我自己的网站怎么做关键词优化泰安网站建设dxkjw
  • 平面设计做画册用网站泰州seo平台
  • 申请一个域名后怎么做网站evernote wordpress
  • 网站左侧导航栏设计网站开发后台数据怎么来
  • 临西做网站报价网站建设需要写语句吗
  • 建设网站网站首页购物网站开发代码
  • 淘宝客怎么建立网站网站360优化
  • 安徽建海建设工程有限公司网站网站空间和域名价格
  • 农产品网站建设策划哪里有做枪网站的
  • 更改各网站企业信息怎么做张家港企业网站制作
  • 郑州网站建设咨询银川做网站哪家好
  • 微信网站 微信支付合肥seo排名收费
  • 织梦做的网站如何上线广东省广州市番禺区南村镇
  • 网站设计的导航栏怎么做太原有网站工程公司吗