This commit is contained in:
Daniel Hübleitner
2019-09-18 01:19:33 +02:00
parent 41a5d14fd8
commit 34ec2d0244
3 changed files with 9 additions and 7 deletions
+3 -1
View File
@@ -2,6 +2,7 @@ import { Socket } from "./RPCSocketServer";
declare type rpcType = 'hook' | 'unhook' | 'call'; declare type rpcType = 'hook' | 'unhook' | 'call';
declare type visibility = 'public' | 'private'; declare type visibility = 'public' | 'private';
export declare type Outcome = "Success" | "Error"; export declare type Outcome = "Success" | "Error";
export declare type Visibility = "127.0.0.1" | "0.0.0.0";
export declare class Response { export declare class Response {
message?: string | undefined; message?: string | undefined;
constructor(message?: string | undefined); constructor(message?: string | undefined);
@@ -86,10 +87,11 @@ export declare type RPCSocketConf = {
export declare class RPCSocketServer { export declare class RPCSocketServer {
private port; private port;
private rpcExporters; private rpcExporters;
private visibility;
private conf; private conf;
private io; private io;
private wsServer; private wsServer;
constructor(port: number, rpcExporters?: RPCExporter[], conf?: RPCSocketConf); constructor(port: number, rpcExporters?: RPCExporter[], visibility?: Visibility, conf?: RPCSocketConf);
private startWebsocket; private startWebsocket;
protected initApis(socket: any): void; protected initApis(socket: any): void;
} }
+3 -2
View File
@@ -107,13 +107,14 @@ const extractArgs = (f) => {
return ret; return ret;
}; };
class RPCSocketServer { class RPCSocketServer {
constructor(port, rpcExporters = [], conf = { constructor(port, rpcExporters = [], visibility = "127.0.0.1", conf = {
errorHandler: (socket) => (error) => { socket.destroy(); console.error(error); }, errorHandler: (socket) => (error) => { socket.destroy(); console.error(error); },
closeHandler: (socket) => () => { console.log("Socket closing"); }, closeHandler: (socket) => () => { console.log("Socket closing"); },
connectionHandler: (socket) => { console.log("New websocket connection in port " + socket.port); } connectionHandler: (socket) => { console.log("New websocket connection in port " + socket.port); }
}) { }) {
this.port = port; this.port = port;
this.rpcExporters = rpcExporters; this.rpcExporters = rpcExporters;
this.visibility = visibility;
this.conf = conf; this.conf = conf;
this.io = bsock.createServer(); this.io = bsock.createServer();
this.wsServer = http.createServer(); this.wsServer = http.createServer();
@@ -127,7 +128,7 @@ class RPCSocketServer {
socket.on('close', this.conf.closeHandler(socket)); socket.on('close', this.conf.closeHandler(socket));
this.initApis(socket); this.initApis(socket);
}); });
this.wsServer.listen(this.port); this.wsServer.listen(this.port, this.visibility);
} }
catch (e) { catch (e) {
//@ts-ignore //@ts-ignore
+3 -4
View File
@@ -5,9 +5,8 @@ import * as uuid from "uuid/v4"
import { Socket } from "./RPCSocketServer" import { Socket } from "./RPCSocketServer"
type rpcType = 'hook' | 'unhook' | 'call' type rpcType = 'hook' | 'unhook' | 'call'
type visibility = 'public' | 'private'
export type Outcome = "Success" | "Error" export type Outcome = "Success" | "Error"
export type Visibility = "127.0.0.1" | "0.0.0.0"
/* Responses */ /* Responses */
export class Response{ export class Response{
@@ -56,7 +55,6 @@ export interface RPCExporter{
type baseRPC = { type baseRPC = {
type: rpcType type: rpcType
name: string name: string
visibility: visibility
} }
type hookRPC = baseRPC & { type hookRPC = baseRPC & {
@@ -211,6 +209,7 @@ export class RPCSocketServer{
constructor( constructor(
private port:number, private port:number,
private rpcExporters: RPCExporter[] = [], private rpcExporters: RPCExporter[] = [],
private visibility: Visibility = "127.0.0.1",
private conf: RPCSocketConf = { private conf: RPCSocketConf = {
errorHandler: (socket:Socket) => (error:any) => { socket.destroy(); console.error(error) }, errorHandler: (socket:Socket) => (error:any) => { socket.destroy(); console.error(error) },
closeHandler: (socket:Socket) => () => { console.log("Socket closing") }, closeHandler: (socket:Socket) => () => { console.log("Socket closing") },
@@ -228,7 +227,7 @@ export class RPCSocketServer{
socket.on('close', this.conf.closeHandler(socket)) socket.on('close', this.conf.closeHandler(socket))
this.initApis(socket) this.initApis(socket)
}) })
this.wsServer.listen(this.port) this.wsServer.listen(this.port, this.visibility)
}catch(e){ }catch(e){
//@ts-ignore //@ts-ignore
this.errorHandler(undefined)("Unable to connect to socket") this.errorHandler(undefined)("Unable to connect to socket")