Hello everyone,
In my scenario, I generate signUrl to upload photo to s3 later and send each user inside current room via socket. To do so, I inject websocket gateway inside queue processor. But I don't know, is it nestjs recommended approach for using ws gateways.
// processor.ts
@Processor('moment-capture')
export class CaptureProcessor extends WorkerHost {
constructor(
private readonly s3Service: S3Service,
private readonly momentGateway: MomentGateway,
) {
super();
}
async process(job: Job<any, any, string>): Promise<any> {
switch (job.name) {
case CAPTURE_JOB: {
const url = await this.s3Service.generatePresignedUrl('test')
// emit unique url to each user via socket
this.momentGateway.server.to('socketId').emit('sign_url', url);
}
}
}
}
// gateway.ts
export class MomentGateway implements OnGatewayConnection, OnGatewayDisconnect {
constructor() {}
@WebSocketServer()
server: Server;
handleConnection(socket: Socket) {}
}
I would appreciate you recommendation and help ❤️🫡