博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nest.js WebSocket
阅读量:5996 次
发布时间:2019-06-20

本文共 1617 字,大约阅读时间需要 5 分钟。

Docs:

λ yarn add @nestjs/websockets

λ nest g ga events

events.gateway.js

import { SubscribeMessage, WebSocketGateway, WsResponse, WebSocketServer } from '@nestjs/websockets';import { Observable, of } from 'rxjs';import { map } from 'rxjs/operators'const l = console.log@WebSocketGateway()export class EventsGateway {  @WebSocketServer() server;  @SubscribeMessage('events')  onEvent(client: any, payload: any): Observable
> | any { // this.server.emit('resmsg', data); // io.emit('resmsg', payload) let { name } = payload; if (name === 'ajanuw') { return of({ event: 'events', data: { msg: 'hello ajanuw!' } }) } if (name === 'alone') { return of('hi', '实打实') .pipe( map($_ => ({ event: 'events', data: { msg: $_ } })) ); } return of(payload); }}

app.module.ts

import { EventsGateway } from './events/events.gateway'@Module({  providers: [EventsGateway],})

客户端

  

监听进入与离开

import {  SubscribeMessage,  WebSocketGateway,  WsResponse,  WebSocketServer,} from '@nestjs/websockets';import { Observable, of } from 'rxjs';const l = console.log;let num = 0;@WebSocketGateway()export class EventsGateway {  @SubscribeMessage('message')  onEvent(client: any, payload: any): Observable
> { num++ console.log(`有一位用户链接!> ${num}`); client.on('disconnect', () => { num-- console.log(`有人离开了...> ${num}`); }) return of({ event: 'message', data: '233' }); }}

转载于:https://www.cnblogs.com/ajanuw/p/9734517.html

你可能感兴趣的文章
Maven和Gradle对比
查看>>
C语言extern关键字用法
查看>>
我的LINUX之路----安装LINUX及远程连接
查看>>
如何提高Java并行程序性能
查看>>
数据加密到底管不管用
查看>>
面向对象程序与类
查看>>
安装vsftpd
查看>>
Linux性能分析的前60000毫秒
查看>>
Power of Three(leetcode326)
查看>>
网络安全与安全体系的建立
查看>>
Nginx之虚拟目录-root与alias的区别
查看>>
关于MySQL二进制日志Binlog的认识
查看>>
iObjects for Spark-时空大数据分析引擎
查看>>
战略管理与资本运作案例剖析
查看>>
×××LAMP+FastCGI+xcache加速器
查看>>
华为交换机通用配置方法
查看>>
lduan server 2012 系统批量激活(三十二)
查看>>
自定义key解决zabbix端口监听取值不准确的问题
查看>>
我的友情链接
查看>>
进击的***打破苹果资安之墙,巨人来自土耳其?
查看>>