高哲技术博客 高哲技术博客
首页
编程
爬虫
运维
硬件
收藏
归档
关于

嘉美伯爵

前途光明,无需畏惧
首页
编程
爬虫
运维
硬件
收藏
归档
关于
  • 架构

  • 思想

  • 语言

    • golang

    • cxx

    • python

    • java

    • rust

    • vue

      • Vue.js如何进行鉴权
      • Vue.js动态路由
      • Vue.js状态管理
      • 如何在Vue.js进行mock
      • npm包管理工具整理
      • 低代码框架plugpage调研
      • CSS样式库调研
      • 微前端框架相关框架调研
      • Vue.js框架之elementui
      • 如何使用pm2部署前端应用
      • sse技术集合chatgpt使用
        • 原理
        • 特点
        • 相关代码
      • 如何在git提交代码之前进行特定的操作
      • nuxt学习及问题记录
      • 如何开发Chrome插件
      • 前端实时更新后端处理进度
      • bootstrap及其相关插件使用
      • flex布局深入理解
    • grpc

    • electron

    • uniapp

    • android

    • react

    • flutter

  • 设计模式

  • 微服务

  • 数据分析

  • 人工智能

  • 区块链

  • 数据结构

  • 技术调研

  • 性能优化

  • 生产问题

  • 编程
  • 语言
  • vue
fovegage
2023-06-13
目录

sse技术集合chatgpt使用

sse是服务端向客户端单向传输的技术,它的应用场景是股票市场数据更新、实时通知、ChatGPT流失返回数据等。

# 原理

  1. JavaScript SSE (Server-Sent Events) 技术是一种用于在客户端和服务器之间实现实时、单向通信的技术。
  2. 它允许服务器向客户端发送异步事件,而无需客户端发起请求。
  3. SSE 使用基于HTTP协议的长连接,通过在服务器和客户端之间保持持久的连接,实现了服务器向客户端推送数据的能力。
  4. 与传统的Ajax轮询相比,SSE 提供了更高效、更实时的数据传输方式。
  5. SSE 的基本原理是客户端通过使用 JavaScript 创建一个 EventSource 对象来与服务器建立连接。
  6. 该对象指定服务器的 URL,然后开始监听来自服务器的事件。服务器可以通过发送包含特定格式数据的响应来触发这些事件。
  7. 一旦建立连接,服务器可以周期性地发送事件和数据到客户端,而客户端则可以通过在 EventSource 对象上注册事件处理程序来处理这些事件。

# 特点

  1. 单向通信:SSE 是服务器向客户端的单向通信方式,仅服务器发送事件和数据给客户端,而不需要客户端发送请求。
  2. 实时性:SSE 提供了实时数据传输的能力,服务器可以随时向客户端发送更新的数据。
  3. 长连接:SSE 使用长连接,可以持续保持连接而不需要频繁地建立和关闭连接,这减少了网络开销。
  4. 事件驱动:SSE 使用事件驱动的模型,服务器可以发送不同类型的事件,而客户端可以根据事件类型来处理数据。

# 相关代码

let sse = new EventSource(`/openai/completions/stream?user=${this.getUser()}&prompt=${this.message}`)

// 连接建立
sse.addEventListener('open', (function () {
    console.log('open')
    this_.generating = true
    this_.items.push({user: 'bot', messageType: 'TEXT', message: ''})
}))

// 开始发送消息
sse.addEventListener('message', function (res) {
    // 根据api接口返回的信息关闭sse连接
    sse.close()
})

// 错误处理
sse.addEventListener('error', function () {
    console.log('error')
    this_.generating = false

    alert('服务器错误,请查看日志')
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#chatgpt
上次更新: 2023-09-07 10:22:14
如何使用pm2部署前端应用
如何在git提交代码之前进行特定的操作

← 如何使用pm2部署前端应用 如何在git提交代码之前进行特定的操作→

最近更新
01
token embed和postion embed
06-10
02
k8s pod日志排查问题
10-24
03
golang内部私服建设方案
10-21
更多文章>
Theme by Vdoing | Copyright © 2018-2025 嘉美伯爵 | 鲁ICP备20001560号-4
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式