class NatsTransport
implements Transport
import { NatsTransport } from "https://deno.land/x/jok_transport@v1.1.1/mod.ts";
Features:
- on should be done after starting the transport
- on can have the route pattern
- no need to
init
&destroy
, juststart
andstop
- support reading raw messages
- retry on 503 (No Responder) error, after timeout/2
Constructors
new
NatsTransport(options: TransportOptions & { connect: (opts?: nats.ConnectionOptions) => Promise<nats.NatsConnection>; StringCodec: () => nats.Codec<string>; connectionName?: string; natsServerUrls?: string[] | string; maxPingOut?: number; noEcho?: boolean; queueGroup?: string; authentication?: Authenticatior; }, utils?: TransportUtils)Properties
private
_state: TransportStatereadonly
state: TransportStateMethods
private
mergeMetadata(context: { metadataReducers: MetadataReducer<MessageMetadata>[]; ctx?: TransportContext<MessageMetadata>; route: string; message: TransportMessage; }): MessageMetadatadispose()
init(data?: { userId: string; sessionId: string; }): Promise<void>
off(route: string): void
on(): () => void
route: string,
action: RouteHandler<MessageMetadata>,
options?: { queueGroup?: string; readRawMessage?: boolean; },
start(props?: { authentication?: Authenticatior; onConnectionStatusChange?: (status: TransportState) => void; metadataReducers?: MetadataReducer<MessageMetadata>[]; natsServerUrls?: string[] | string; })
stop()
subscribeEvents<TOverrideApi = TApi>(handlerMap: Map1<TOverrideApi, TContext | TransportContext<MessageMetadata>>, options?: { readRawMessage?: boolean; ctx?: TContext; }): Promise<() => void>
Subscribes multple events and returns back one dispose function for all of them.
Internally uses on
api to subscribe individual events