Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 15x 15x 44x 22x 22x 22x 22x 22x 22x 22x 22x 22x 22x 15x 2x 15x 2x 15x 18x 15x 44x 44x 44x 44x 15x 1x | import { WebSocket } from './client';
import { WebSocketServer } from './server';
export const noop: () => void = (): void => { /** ignore */ };
export const OPCODE_TEXT: number = 1;
export const OPCODE_PING: number = 9;
export const OPCODE_BINARY: number = 2;
export const APP_PING_CODE: Buffer = Buffer.from('9');
export const PERMESSAGE_DEFLATE: number = 1;
export const SLIDING_DEFLATE_WINDOW: number = 16;
export const DEFAULT_PAYLOAD_LIMIT: number = 16777216;
export const native: any = ((): NodeRequire => {
try {
return require(`../dist/bindings/cws_${process.platform}_${process.versions.modules}`);
} catch (err) {
err.message = err.message + ` check './node_modules/@clusterws/cws/build_log.txt' for post install build logs`;
throw err;
}
})();
export function setupNative(group: any, type: string, wsServer?: WebSocketServer): void {
native.setNoop(noop);
native[type].group.onConnection(group, (external: any): void => {
if (type === 'server' && wsServer) {
const socket: WebSocket = new WebSocket(null, { external });
native.setUserData(external, socket);
Iif (wsServer.upgradeCb) {
wsServer.upgradeCb(socket);
} else {
wsServer.registeredEvents['connection'](socket, wsServer.upgradeReq);
}
wsServer.upgradeCb = null;
wsServer.upgradeReq = null;
return;
}
const webSocket: WebSocket = native.getUserData(external);
(webSocket as any).external = external;
webSocket.registeredEvents['open']();
});
native[type].group.onPing(group, (message: string | Buffer, webSocket: WebSocket): void => {
webSocket.registeredEvents['ping'](message);
});
native[type].group.onPong(group, (message: string | Buffer, webSocket: WebSocket): void => {
webSocket.registeredEvents['pong'](message);
});
native[type].group.onMessage(group, (message: string | Buffer, webSocket: WebSocket): void => {
webSocket.registeredEvents['message'](message);
});
native[type].group.onDisconnection(group, (newExternal: any, code: number, message: any, webSocket: WebSocket): void => {
(webSocket as any).external = null;
process.nextTick((): void => {
webSocket.registeredEvents['close'](code || 1005, message || '');
});
native.clearUserData(newExternal);
});
if (type === 'client') {
native[type].group.onError(group, (webSocket: WebSocket): void => {
process.nextTick((): void => {
webSocket.registeredEvents['error']({
message: 'cWs client connection error',
stack: 'cWs client connection error'
});
});
});
}
}
|