Vah*_*yan 2 websocket socket.io reactjs nestjs nestjs-gateways
我正在尝试使用 nestjs 创建聊天,但它的问题在于@SubscribeMessage()连接的实现正在工作,但是当我尝试侦听来自前端的发射和consolenestjs 中的数据时,它不起作用
import { Server, Socket } from 'socket.io';
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { User } from '../entities/user.entity';
import { Repository } from 'typeorm';
import { Messenger } from './entities/messenger.entity';
@Injectable()
@WebSocketGateway(5000)
export class MessengerGateway implements OnGatewayConnection, OnGatewayDisconnect, OnGatewayInit {
constructor(
@InjectRepository(User)
private userRepository: Repository<User>,
@InjectRepository(Messenger)
private messageRepository: Repository<Messenger>,
) {}
@SubscribeMessage('loadPeople')
handleEvent(client: Socket, data){
console.log(data);
// this is not working
}
async afterInit(server: Server) {
console.log('Init');
}
@SubscribeMessage('is-online')
async handleConnection(client: Socket) {
console.log('connected');
// I can see this message in console
}
@SubscribeMessage('is-offline')
async handleDisconnect(client: Socket) {
console.log('disconnected');
// I can see this message in console
}
}Run Code Online (Sandbox Code Playgroud)
从前端我发送这个请求
import { io } from "socket.io-client";
const ENDPOINT = "localhost:5000";
let socket
function App(){
useEffect(()=>{
socket = io(ENDPOINT)
socket.emit('loadPeople', {token: localStorage.token})
},[])
return (
//...
)
}Run Code Online (Sandbox Code Playgroud)
当我将 nodejs(expressjs) 与 socket.io 一起使用时,它可以工作,但是当我尝试使用 nestjs 执行此操作时,它不起作用
基于NestJS Websocket 文档,NestJS socketIO 服务器仍处于 v2 中。
@nestjs/platform-socket.io 目前依赖于 socket.io v2.3 并且 socket.io v3.0 客户端和服务器不向后兼容。但是,您仍然可以实现自定义适配器以使用 socket.io v3.0。请参阅此问题以获取更多信息。
如果您检查版本兼容性,您会看到 socketIO server v2 与 socketIO client v4 不兼容。
最简单的解决方案是socket.io-client v2.3.0在您package.json的前端使用。
或者,如果您喜欢探索:socketIO 服务器 v3 与 socketIO 客户端 v4 兼容。所以我相信您可以查看这个问题(如 NestJS 文档中所述)并尝试将您的 NestJS socketIO 服务器转换为支持 socketIO 客户端 v3。希望这也能支持 socketIO 客户端 v4。(虽然我没有测试这个!)
希望这对你有帮助。干杯!!!
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |