node.js - 如何使用 nestjs 和 socket.io 创建房间

标签 node.js typescript websocket socket.io nestjs

我正在尝试在我的 nestjs 后端创建一个房间,但找不到关于此主题的任何信息。您可以找到文档 here .文档似乎没有关于这个主题的任何内容。

import {
  SubscribeMessage,
  WebSocketGateway,
  WebSocketServer,
  WsResponse,
} from '@nestjs/websockets';
import { Client, Server } from 'socket.io';

@WebSocketGateway({namespace: 'story'})
export class StoryEventsGateway {
  @WebSocketServer()
  server: Server;

  @SubscribeMessage('createRoom')
  createRoom(client: Client, data: string): WsResponse<unknown> {
    return { event: 'roomCreated', data };
  }
}

最佳答案

通过将client: Client 更改为socket: Socket,您可以使用您在使用socket.io 时习惯使用的套接字对象。 .

这是编辑后的函数。

import { Socket } from 'socket.io';
import { WsResponse } from '@nestjs/websockets';

createRoom(socket: Socket, data: string): WsResponse<unknown> {
  socket.join('aRoom');
  socket.to('aRoom').emit('roomCreated', {room: 'aRoom'});
  return { event: 'roomCreated', room: 'aRoom' };
}

关于node.js - 如何使用 nestjs 和 socket.io 创建房间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55949600/

相关文章:

mysql - 如何在不知道元素id的情况下删除元素,只需在数据库中排序

windows - 如何在 Windows 上以 'Watch output files' 模式 (tsc -w) 使用 TypeScript 编译器?

typescript - 为什么我收到“typings WARN deprecated <packagename> is deprecated (updated,replaced or returned)”

javascript - Node.js 从脚本调用函数来更新 UI

javascript - WebSocket 版本和向后兼容性

angularjs - 多 webpack-dev-server/client 中出现错误?http ://localhost:4200

javascript - Node.js:多维数组赋值

javascript - 时间转换器 : split content time with ads time

typescript :枚举键作为函数的参数

android - Android 上的 jWebSocket 客户端无法连接到本地服务器