eureca.io
Version:
Nodejs transparent bidirectional remote procedure call (RPC) supporting multiple transports : WebRTC, Websocket, engine.io, faye ...etc
48 lines (41 loc) • 1.4 kB
text/typescript
/// <reference path="ISocket.interface.ts" />
/// <reference path="IServer.interface.ts" />
/** @ignore */
module Eureca {
// Class
export class Transport {
private static transports: any = {};
static register(
name,
clientScript:string,
createClient: (uri: string, options?: any) => ISocket,
createServer: (hook: any, options?: any) => IServer,
defaultSerializer : (data:any) => any,
defaultDeserializer : (data:any) => any
):boolean
{
if (this.transports[name] !== undefined) return false;
this.transports[name] = {
createClient: createClient,
createServer: createServer,
script:clientScript,
serialize:defaultSerializer,
deserialize:defaultDeserializer
}
}
static get (name)
{
if (name != 'webrtc')
{
//console.log('* using primus:' + name);
//settings.transport = 'primus';
return this.transports['primus'];
}
else
{
//console.log('* using ' + name);
return this.transports[name];
}
}
}
}