node-universe
Version:
基于 Nodejs 环境的一款微服务框架,原理来自于宇宙中的恒星,行星,卫星等系统。
49 lines (48 loc) • 2.07 kB
TypeScript
import { GenericObject } from '../../typings';
import BaseTransporter from './base';
import UdpServer from './tcp/udp-broadcaster';
import TcpReader from './tcp/tcp-reader';
import TcpWriter from './tcp/tcp-writer';
import Packet from '../packets';
import Transit from '../transit';
import { Registry } from '../registry';
import { Discoverer } from '../../typings/registry/discoverers';
import NodeCatalog from '../registry/catalogs/node';
import Node from '../registry/node';
import { Socket } from 'net';
import { PacketTypes } from '../../typings/packets';
export default class TcpTransporter extends BaseTransporter {
reader: TcpReader | null;
writer: TcpWriter | null;
udpServer: UdpServer | null;
gossipTimer: any;
GOSSIP_DEBUG: boolean;
registry: Registry | null;
discoverer: Discoverer | null;
nodes: NodeCatalog | null;
constructor(options: GenericObject);
init(transit: Transit, messageHandler: (cmd: string, msg: Packet) => any, afterConnect: (wasReconnect: boolean) => any): void;
connect(): Promise<any>;
private startTcpServer;
private startUdpServer;
loadUrls(): Promise<void>;
receive(type: PacketTypes, message: Buffer, socket?: Socket): any;
onIncomingMessage(type: PacketTypes, message: Buffer, socket: Socket): any;
startTimers(): void;
stopTimers(): void;
processGossipRequest(message: Buffer): void;
processGossipResponse(message: Buffer): void;
sendGossipRequest(): void;
private sendGossipToRandomEndpoint;
private addOfflineNode;
getNode(nodeID: string): Node | undefined;
private getNodeAddress;
publish(packet: Packet): Promise<void> | undefined;
send(type: PacketTypes, data: Buffer, meta: GenericObject): Promise<void> | undefined;
sendHello(nodeID: string): Promise<void> | undefined;
processGossipHello(msg: Buffer, socket?: Socket): void;
disconnect(): void;
getLocalNodeInfo(): Node | null | undefined;
getNodeInfo(nodeID: string): Node | undefined;
subscribe(cmd: PacketTypes, nodeID: string): any;
}