For example, In controller emit the event in your post method
...
import { Observable, fromEvent, map } from 'rxjs';
import { EventEmitter2, OnEvent } from '@nestjs/event-emitter';
@Controller('users')
export class UsersController {
constructor(
private readonly usersService: UsersService,
private eventEmitter: EventEmitter2,
) { }
@Post()
@ApiOkResponse({ type: UserEntity })
async create(@Body() createUserDto: CreateUserDto) {
const user = await this.usersService.create(createUserDto);
this.eventEmitter.emit('user-create', user);
return user;
}
@OnEvent('user-create')
@Sse('create-user')
sse(): Observable<MessageEvent> {
try {
return fromEvent(this.eventEmitter, 'employee-create').pipe(
map((data) => {
return new MessageEvent('employee-create', { data: data } as MessageEvent);
}),
);
} catch (e) {
console.log('error', e);
}
}
}