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

apache 建立网站iis搭建wordpress

apache 建立网站,iis搭建wordpress,电商商城网站开发框架,wordpress 主题 mnewsServer-Sent Events (SSE) 的实现主要是通过逐步读取 HTTP 响应体并以事件流的形式将数据推送到客户端。下面我会详细解释代码中如何实现 SSE。 SSE (Server-Sent Events) 简介 SSE 是一种在客户端与服务器之间建立单向持久连接的技术#xff0c;允许服务器在有新数据时主动推…Server-Sent Events (SSE) 的实现主要是通过逐步读取 HTTP 响应体并以事件流的形式将数据推送到客户端。下面我会详细解释代码中如何实现 SSE。 SSE (Server-Sent Events) 简介 SSE 是一种在客户端与服务器之间建立单向持久连接的技术允许服务器在有新数据时主动推送到客户端。与传统的 HTTP 请求-响应模型不同SSE 使用一个持久连接来推送数据而不需要客户端反复发起请求。 代码分析 1.设置响应头部 服务器首先通过设置响应头指定内容类型为 text/event-stream并且禁用缓存、保持连接活跃 c.Writer.Header().Set(Content-Type, text/event-stream)c.Writer.Header().Set(Cache-Control, no-cache)c.Writer.Header().Set(Connection, keep-alive)2.Content-Type: text/event-stream 告诉浏览器这是一个 SSE 流。 3.Cache-Control: no-cache 禁止缓存确保每次客户端接收到的是最新的事件数据。 4.Connection: keep-alive 确保 HTTP 连接在数据传输期间保持活跃。 5.发起 HTTP 请求 SendChatRequestPlus 函数创建并发送了一个 HTTP POST 请求到 https://api.lingyiwanwu.com/v1/chat/completions该请求的请求体是传入的 body 参数。请求的目的可能是请求一个聊天机器人服务的回答。 req, err : http.NewRequest(POST, https://api.lingyiwanwu.com/v1/chat/completions, bytes.NewBuffer(jsonData))其中 jsonData 是将 body 序列化后的 JSON 数据。 6.处理响应 请求发送后代码等待来自服务端的响应。服务端返回的数据是逐行传送的并且每行都以 data: 开头这是 SSE 的标准格式。 scanner : bufio.NewScanner(resp.Body)for scanner.Scan() {line : scanner.Text()if strings.HasPrefix(line, data: ) {jsonData : strings.TrimPrefix(line, data: )// 进一步处理 jsonData}}7.使用 bufio.Scanner 来逐行读取响应体每一行可能包含一个 SSE 数据事件。 8.每一行数据以 data: 开头后面是实际的 JSON 数据。 例如如果响应体是这样 data: {message: Hello, world!}data: {message: How are you?}这就意味着服务端通过 SSE 向客户端发送了两个消息。 9.解码 JSON 数据并格式化 读取到每行 data: 后面的 JSON 数据后将其解码为 responseBody这是一个 map[string]interface{} 类型。 if err : json.Unmarshal([]byte(jsonData), amp;responseBody); err ! nil {c.String(http.StatusInternalServerError, error decoding JSON: %s, err)return}然后将解码后的 responseBody 再次序列化为 JSON 格式并通过 SSE 格式发送到客户端。 10.发送数据到客户端 将格式化后的 JSON 数据通过 fmt.Fprintf 按 SSE 格式发送到客户端。注意数据是以 data: json_data\n\n 这种格式发送的。 eventData, err : json.Marshal(responseBody)if err ! nil {c.String(http.StatusInternalServerError, error marshalling response: %s, err)return}fmt.Fprintf(c.Writer, data: %s\n\n, eventData)c.Writer.Flush() // 刷新响应流11.data: %s\n\n 表示发送一个 SSE 消息其中 data 是消息的内容。 12.c.Writer.Flush() 强制将响应刷新到客户端确保消息实时传送。 13.控制发送频率 在代码中time.Sleep(1 * time.Second) 用来控制每次发送的频率。这里设置的是每秒钟发送一次事件。如果需要可以调整这个时间间隔。 time.Sleep(1 * time.Second)14.处理错误 在整个过程中代码会处理可能出现的各种错误例如 JSON 编码/解码错误、HTTP 请求错误、响应读取错误等。如果发生错误服务器会返回相应的错误信息并停止处理。 总结 在这段代码中SSE 的实现核心是通过将服务器的响应逐行读取并格式化为符合 SSE 协议的格式 (data: json_data\n\n) 推送给客户端。这种方法确保了服务器能够持续向客户端推送数据而无需客户端持续发送请求。通过设置正确的响应头和适当的处理每一行 data: 数据最终实现了 Server-Sent Events 的功能。 改进建议 15.错误处理如果服务端响应的状态码不为 200 OK可以在响应头中返回更详细的错误信息而不仅仅是一个通用的错误消息。 16.连接管理考虑到 SSE 的长连接特性可能需要处理连接超时或客户端断开连接的情况。
http://www.pierceye.com/news/997036/

相关文章:

  • 网站怎么引入微信支付郑州官方通报
  • 在南宁做家教兼职的网站北京通州做网站
  • 深圳网站的建设维护公司秦皇岛市建设局官网
  • 做网站 插件静态网站开发课程相关新闻
  • 网站建站 公司无锡搜索引擎营销的内容
  • 公司网站建设小知识单页网站是什么样子的
  • 大学网站建设排名深圳网站建设公司报价
  • 贵阳网站制作公司茶叶推广方案
  • 自适应 网站开发wordpress域名邮箱设置
  • 深圳网站设计网站制作非织梦做的网站能仿吗
  • 做网站可以使用免费空间吗沧州百姓网免费发布信息网
  • 关于阅读类网站的建设规划书使用密码访问wordpress文章
  • 做鲜花配送网站需要准备什么郑州官网网站优化公司
  • 评论网站建设个人网站域名名字
  • 郑州做茶叶的网站科技公司官网设计源代码
  • 武夷山住房和城乡建设部网站广东建设报网站
  • 怎样建设网站是什么样的免费软件不收费网站
  • 网站服务器如何管理seo知名公司
  • 网站单页别人是怎么做的预约挂号php网站ftp急着后台密码忘记了
  • 快速迁移网站wordpress网站很慢
  • 官方网站的作用邢台做wap网站费用
  • 梧州网站优化运营策划
  • 佛山网站快照优化公司免费好用的wordpress
  • 河南有名的做网站公司有哪些做设计找素材的+网站有哪些
  • 网站建设规划设计任务书网站开发的费用申请
  • 淮阳住房城乡建设局网站网页模板的作用
  • 知识问答网站开发不用编程做APP和响应式网站
  • 免费创建个人商城网站吗中国互联网前100名企业
  • 贵阳网站建设端觉有做数学题的网站吗
  • 网站备案格式网站开发工程师适合女生吗