reliable-zeromq
Version:
A collection of reliable zeromq messaging constructs
56 lines (55 loc) • 1.74 kB
TypeScript
import { TZMQRequestErrorHandlers } from "./Errors";
export declare type TRequestBody = [requesterId: string, nonce: string, message: string];
export declare enum ERequestBody {
RequesterId = 0,
Nonce = 1,
Message = 2
}
export declare enum ERequestResponse {
SUCCESS = "SUCCESS",
TIMEOUT = "TIMEOUT",
CACHE_ERROR = "CACHE_ERROR"
}
export declare type TSuccessfulRequest = {
ResponseType: ERequestResponse.SUCCESS;
Response: string;
};
export declare type TRequestTimeOut = {
ResponseType: ERequestResponse.TIMEOUT;
MessageNonce: number;
RequestBody: TRequestBody;
};
export declare type TResponseCacheError = {
ResponseType: ERequestResponse.CACHE_ERROR;
Endpoint: string;
MessageNonce: number;
};
export declare type TRequestResponse = TSuccessfulRequest | TRequestTimeOut | TResponseCacheError;
export declare class ZMQRequest {
private readonly mCancellableDelay;
private mDealer;
private readonly mEndpoint;
private readonly mErrorHandlers;
private readonly mOurUniqueId;
private readonly mPendingRequests;
private mRequestNonce;
private readonly mRoundTripMax;
private mSafeToSend;
private readonly mSendQueue;
constructor(aReceiverEndpoint: string, aErrorHandlers?: TZMQRequestErrorHandlers);
private get ResponseTimeout();
get Endpoint(): string;
private AssertRequestProcessed;
private GenerateRequestResult;
private HandleZMQSendError;
private IsErrorMessage;
private ManageRequest;
private Open;
private ProcessSend;
private ProcessZmqReceive;
private QueueSend;
private ResponseHandler;
private SendRequest;
Close(): void;
Send(aData: string): Promise<TRequestResponse>;
}