重生之我在NestJS中使用EventStream
创始人
2024-11-15 02:32:33
0

有一个需求是需要长连接等待后台的返回,我们使用的EventStream,在NestJS中使用很简单,框架基本上已经封装好了

0. 如果没有创建项目的,可以先创建一个项目,创建项目的直接跳转到下一个步骤去

  • 全局安装 nest: npm install @nestjs/cli global
  • 创建项目: nest new nest-demo-app

1. 在NestJS中的代码

app.constroller.ts 中新建一个方法,如下:

import { Observable } from 'rxjs'; import { Controller, Sse } from '@nestjs/common';  @Controller() class AppController {    @Sse('test/event-stream') // 这个是访问的链接地址 http://localhost:3000/test/event-stream   testEventStream() {     let count = 0;     return new Observable(observer => {       // 调用 observer.next() 这个方法向前端推送消息       setInterval(() => {         count++;         observer.next({ data: new Date().toLocalTimeString() });       }, 3000);        // 调用 observer.complete() 这个方法,表示结束本次推送       if (count > 5) {         observer.complete();         // 或者调用 observer.unsubscribe() 也可以结束推送       }     });   } } 

2. 在前端调用这个接口

const stream = new EventSource('http://localhost:3000/test/event-stream') let count = 0 stream.onopen = () => {   console.log('连接打开'); } stream.onmessage = e => {   console.log(e.data); // 打印获取到的数据,也就是 NestJS 中 observer.next() 中发送的数据   if (count++ >= 5) {     stream.close(); // 主动关闭连接   } } stream.onerror = e => {   console.error(e); // 打印错误日志 } stream.onclose = () => {   console.log('连接关闭'); // 关闭连接  } 

注意:

  1. 前端在一个长连接完成之后,如果没有主动关闭连接,会一直发这个连接,所以在 message 中需要根据条件判断一下,主动关闭连接

相关内容

热门资讯

外挂举措!pokerworld... 外挂举措!pokerworld破解版下载,pokermaster辅助器-切实一直总是有辅助app(哔...
无独有偶!wepoker怎么开... 无独有偶!wepoker怎么开辅助(透视)一贯真的是有辅助安装(有挂存在)-哔哩哔哩1、该软件可以轻...
必备教程!wepoker透视脚... 必备教程!wepoker透视脚本免费,789大菠萝可以控制吗,果然真的是有辅助脚本(的确有挂)1、玩...
外挂指南!xpoker辅助器,... 外挂指南!xpoker辅助器,哈糖大菠萝免费辅助器-本来一直总是有辅助工具(哔哩哔哩)1、操作简单,...
透视代打!wepoker透视有... 透视代打!wepoker透视有吗(透视)总是真的有辅助平台(竟然有挂)-哔哩哔哩一、wepoker透...
一分钟揭秘!wejoker辅助... 一分钟揭秘!wejoker辅助软件,山西扣点辅助,真是是真的有辅助神器(有挂技术)暗藏猫腻,小编详细...
外挂策略!来玩app 德州 辅... 外挂策略!来玩app 德州 辅助,aa poker辅助-总是是有辅助方法(哔哩哔哩)亲,关键说明,来...
透视美元局!hhpoker德州... 透视美元局!hhpoker德州透视(透视)原来是有辅助app(证实有挂)-哔哩哔哩1、每一步都需要思...
外挂法门!聚星ai辅助工具收费... 外挂法门!聚星ai辅助工具收费多少,哈糖大菠萝能开挂吗-果然是真的有辅助软件(哔哩哔哩)1、完成聚星...
发现一款!wepoker有透视... 您好,微信牵手跑辅助下载这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多...