@firaenix/bittorrent-protocol
Version:
Simple, robust, BitTorrent peer wire protocol implementation
31 lines (30 loc) • 1.29 kB
TypeScript
/// <reference types="node" />
import { ExtensionsMap } from './ExtensionsMap';
import BitField from 'bitfield';
import { RequestCallback } from './PieceRequest';
import { ExtendedHandshake } from '..';
export interface WireEvents {
finish: () => void;
close: () => void;
error: (error: Error) => void;
upload: (length: number) => void;
'keep-alive': () => void;
handshake: (infoHashHex: string, peerIdHex: string, extensions: ExtensionsMap) => void;
choke: () => void;
unchoke: () => void;
interested: () => void;
uninterested: () => void;
bitfield: (peerPieces: BitField) => void;
have: (index: number) => void;
request: (index: number, offset: number, length: number, callback: RequestCallback) => void;
download: (length: number) => void;
piece: (length: number, offset: number, buffer: Buffer) => void;
cancel: (index: number, offset: number, length: number) => void;
port: (port: number) => void;
extension_message: (extensionName: string, message: Buffer) => void;
missing_extension: (extensionName: string) => void;
extended_handshake: (message: 'handshake', extendedHandshake: ExtendedHandshake) => void;
timeout: () => void;
unknown_message: (message: Buffer) => void;
end: () => void;
}