Skip to main content
Module

x/jok_transport/mod.ts>NatsTransport

🦕🚌 Transport for your messages from Front-end to Back-end to Front-end to Anywhere
Go to Latest
class NatsTransport
implements Transport
import { NatsTransport } from "https://deno.land/x/jok_transport@v0.4.1/mod.ts";

Features:

  • on should be done after starting the transport
  • on can have the route pattern
  • no need to init & destroy, just start and stop
  • 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: TransportState
private
nc: nats.NatsConnection | null
private
routePostfix: string
private
routeSubscriptions: Map<string, nats.Subscription[]>
private
sc: nats.Codec<string>
readonly
state: TransportState

Methods

private
mergeMetadata(context: { metadataReducers: MetadataReducer<MessageMetadata>[]; ctx?: TransportContext<MessageMetadata>; route: string; message: TransportMessage; }): MessageMetadata
init(data?: { userId: string; sessionId: string; }): Promise<void>
off(route: string): void
on(
route: string,
options?: { queueGroup?: string; readRawMessage?: boolean; },
): () => void
publish(props: PublishProps<MessageMetadata>): Promise<void>
start(props?: { authentication?: Authenticatior; onConnectionStatusChange?: (status: TransportState) => void; metadataReducers?: MetadataReducer<MessageMetadata>[]; natsServerUrls?: string[] | string; })