分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

Nest.js ?WebSocket

发布时间:2023-09-06 02:16责任编辑:郭大石关键词:jsWeb

Docs: https://docs.nestjs.com/websockets/gateways

λ 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<WsResponse<any>> | any { ???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],})

客户端

 ?<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.js"></script> ?<script> ???const l = console.log ???let socket = io('http://localhost:5000'); ???socket.on('connect', function () { ?????console.log('链接成功'); ?????// 发射 ?????socket.emit('events', { ???????name: 'ajanuw' ?????}); ?????// 发射 ?????socket.emit('events', { ???????name: 'alone' ?????}); ?????// 发射 ?????// socket.emit('identity', 0, (response) => console.log('Identity:', response)); ???}); ???????// 监听 ???socket.on('events', (data) => { ?????l(data.msg) ???}); ?</script>

Nest.js ?WebSocket

原文地址:https://www.cnblogs.com/ajanuw/p/9734517.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved