@yepmind/nats-rx-client
Version:
50 lines (42 loc) • 1.45 kB
text/typescript
import streams from "./stream-config.json";
import { NatsClientService } from './index';
import { NatsStreamConfig } from './nats-stream-config.js';
const nc = new NatsClientService({
streams: streams as NatsStreamConfig[],
servers: 'nats://localhost:4222',
});
nc.subscribeToEventMessage('mainEv', 'nc-app').subscribe({
next: (eventMessage) => {
console.log(
`EVENT: [${eventMessage.subject}] ${JSON.stringify(eventMessage.data)}`,
);
},
});
nc.subscribeToRequestMessage('mainReq', 'nc-app').subscribe({
next: (requestMessage) => {
console.log(
`REQUEST: [${requestMessage.subject}] ${JSON.stringify(requestMessage.data)}`,
);
requestMessage.respond(JSON.stringify({ y: 'ok' }));
},
});
nc.dequeueData<{ key: number }>('main', 'js').subscribe({
next: (data) => {
console.log(`EVENT subscription 1: [js] ${JSON.stringify(data)}`);
},
});
nc.dequeueData<{ key: number }>('main', 'js').subscribe({
next: (data) => {
console.log(`EVENT subscription 2: [js] ${JSON.stringify(data)}`);
},
});
nc.dequeueData<{ key: number }>('main', '*').subscribe({
next: (data) => {
console.log(`EVENT subscription 1: [*] ${JSON.stringify(data)}`);
},
});
nc.dequeueData<{ key: number }>('main', 'xs').subscribe({
next: (data) => {
console.log(`EVENT subscription 1: [xs] ${JSON.stringify(data)}`);
},
});