update structure
This commit is contained in:
		
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +1,3 @@ | ||||
| node_modules | ||||
| coverage | ||||
| docs/ | ||||
| node_modules/ | ||||
| coverage/ | ||||
| docs/ | ||||
|   | ||||
							
								
								
									
										37
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								README.md
									
									
									
									
									
								
							| @@ -7,3 +7,40 @@ easy and secure websocket communication | ||||
| ## Usage | ||||
| We recommend the use of typescript. | ||||
|  | ||||
| ```typescript | ||||
|  | ||||
| // serverside | ||||
| import * as smartsocket from "smartsocket" | ||||
| let mySmartsocket = new smartsocket.Smartsocket({ | ||||
|     port: 3000 // the port smartsocket will listen on | ||||
| }); | ||||
|  | ||||
| let mySocketRole = new smartsocket.SocketRole({ | ||||
|     name: "someRoleName", | ||||
|     passwordHash: "someHasedString" | ||||
| }); | ||||
|  | ||||
| let mySocketFunction = new smartsocket.SocketFunction({ | ||||
|     func:() => {}, the function to execute | ||||
|     roles:[mySocketRole] // all roles that have access to a specific function | ||||
| }); | ||||
|  | ||||
| mySmartsocket.registerRole(mySocketRole); | ||||
|  | ||||
| // Client side | ||||
| let mySmartsocketClient = new smartsocket.SmartsocketClient({ | ||||
|     url: "somedomain.com", // url, note: will only work over https, no http supported. | ||||
|     port: 3000 | ||||
|     role:"dockerhost", // some role, in this example a dockerhost vm, | ||||
|     password:"somePassword" | ||||
| }); | ||||
|  | ||||
| let mySocketFunction2 = new smartsocket.SocketFunction({ | ||||
|     func:() => {}, the function to execute | ||||
|     roles: [mySocketRole] // all roles that have access to a specific function | ||||
| }); | ||||
|  | ||||
| mySmartsocketClient.registerFunction(mySocketFunction2); | ||||
|  | ||||
|  | ||||
| ``` | ||||
							
								
								
									
										1
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| export * from "./smartsocket.classes.smartsocket"; | ||||
							
								
								
									
										6
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| "use strict"; | ||||
| function __export(m) { | ||||
|     for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; | ||||
| } | ||||
| __export(require("./smartsocket.classes.smartsocket")); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsaUJBQWMsbUNBQW1DLENBQUMsRUFBQSJ9 | ||||
							
								
								
									
										19
									
								
								dist/smartsocket.classes.smartsocket.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								dist/smartsocket.classes.smartsocket.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| /// <reference types="socket.io" /> | ||||
| /// <reference types="q" /> | ||||
| import * as plugins from "./smartsocket.plugins"; | ||||
| import { Objectmap } from "lik"; | ||||
| export interface ISocketObject { | ||||
|     socket: SocketIO.Socket; | ||||
|     authenticated: boolean; | ||||
| } | ||||
| export interface ISmartsocketConstructorOptions { | ||||
|     port: number; | ||||
| } | ||||
| export declare class Smartsocket { | ||||
|     io: SocketIO.Server; | ||||
|     openSockets: Objectmap; | ||||
|     constructor(options: ISmartsocketConstructorOptions); | ||||
|     startListening: any; | ||||
|     authenticateSocket(socketObjectArg: ISocketObject): plugins.q.Promise<{}>; | ||||
|     closeServer: () => void; | ||||
| } | ||||
							
								
								
									
										39
									
								
								dist/smartsocket.classes.smartsocket.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								dist/smartsocket.classes.smartsocket.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./smartsocket.plugins"); | ||||
| // classes | ||||
| const lik_1 = require("lik"); | ||||
| ; | ||||
| class Smartsocket { | ||||
|     constructor(options) { | ||||
|         this.openSockets = new lik_1.Objectmap(); | ||||
|         this.closeServer = () => { | ||||
|             this.io.close(); | ||||
|             this.openSockets.forEach((socketObjectArg) => { | ||||
|                 socketObjectArg.socket.disconnect(); | ||||
|             }); | ||||
|             this.openSockets.wipe(); | ||||
|         }; | ||||
|         this.io = plugins.socketIo(options.port); | ||||
|         this.io.on('connection', (socket) => { | ||||
|             let socketObject = { | ||||
|                 socket: socket, | ||||
|                 authenticated: false | ||||
|             }; | ||||
|             this.openSockets.add(socketObject); | ||||
|             this.authenticateSocket(socketObject); | ||||
|         }); | ||||
|     } | ||||
|     ; | ||||
|     authenticateSocket(socketObjectArg) { | ||||
|         let done = plugins.q.defer(); | ||||
|         socketObjectArg.socket.on("dataAuth", data => { | ||||
|             socketObjectArg.socket.removeListener("dataAuth", () => { }); | ||||
|             done.resolve(); | ||||
|         }); | ||||
|         socketObjectArg.socket.emit("requestAuth"); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
| } | ||||
| exports.Smartsocket = Smartsocket; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuY2xhc3Nlcy5zbWFydHNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmNsYXNzZXMuc21hcnRzb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFHakQsVUFBVTtBQUNWLHNCQUEwQixLQUFLLENBQUMsQ0FBQTtBQUsvQixDQUFDO0FBT0Y7SUFHSSxZQUFZLE9BQXVDO1FBRG5ELGdCQUFXLEdBQUcsSUFBSSxlQUFTLEVBQUUsQ0FBQztRQXNCOUIsZ0JBQVcsR0FBRztZQUNWLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUE4QjtnQkFDcEQsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFBO1FBMUJHLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTTtZQUM1QixJQUFJLFlBQVksR0FBa0I7Z0JBQzlCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLGFBQWEsRUFBRSxLQUFLO2FBQ3ZCLENBQUM7WUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztJQUVELGtCQUFrQixDQUFDLGVBQThCO1FBQzdDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUk7WUFDdEMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0gsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7QUFRTCxDQUFDO0FBL0JZLG1CQUFXLGNBK0J2QixDQUFBIn0= | ||||
							
								
								
									
										2
									
								
								dist/smartsocket.helpers.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dist/smartsocket.helpers.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| "use strict"; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9 | ||||
							
								
								
									
										6
									
								
								dist/smartsocket.plugins.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								dist/smartsocket.plugins.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| import "typings-global"; | ||||
| export import beautylog = require("beautylog"); | ||||
| export import lik = require("lik"); | ||||
| export import q = require("q"); | ||||
| export import socketIo = require("socket.io"); | ||||
| export import taskbuffer = require("taskbuffer"); | ||||
							
								
								
									
										8
									
								
								dist/smartsocket.plugins.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								dist/smartsocket.plugins.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| "use strict"; | ||||
| require("typings-global"); | ||||
| exports.beautylog = require("beautylog"); | ||||
| exports.lik = require("lik"); | ||||
| exports.q = require("q"); | ||||
| exports.socketIo = require("socket.io"); | ||||
| exports.taskbuffer = require("taskbuffer"); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2NrZXQucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c29ja2V0LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDakMsV0FBRyxXQUFZLEtBQUssQ0FBQyxDQUFDO0FBQ3RCLFNBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUNqQixnQkFBUSxXQUFXLFdBQVcsQ0FBQyxDQUFDO0FBQ2hDLGtCQUFVLFdBQVcsWUFBWSxDQUFDLENBQUMifQ== | ||||
| @@ -3,6 +3,7 @@ | ||||
|   "version": "1.0.0", | ||||
|   "description": "easy and secure websocket communication", | ||||
|   "main": "dist/index.js", | ||||
|   "typings":"dist/index.d.ts", | ||||
|   "scripts": { | ||||
|     "test": "(npmts)" | ||||
|   }, | ||||
| @@ -17,10 +18,18 @@ | ||||
|   }, | ||||
|   "homepage": "https://gitlab.com/pushrocks/smartsocket#README", | ||||
|   "dependencies": { | ||||
|     "@types/q": "0.x.x", | ||||
|     "@types/socket.io": "^1.4.26", | ||||
|     "@types/socket.io-client": "^1.4.26", | ||||
|     "beautylog": "^5.0.20", | ||||
|     "lik": "^1.0.9", | ||||
|     "q": "^1.4.1", | ||||
|     "socket.io": "^1.4.8", | ||||
|     "socket.io-client": "^1.4.8", | ||||
|     "taskbuffer": "^1.0.7" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "should": "^10.0.0", | ||||
|     "typings-test": "^1.0.1" | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										2
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| import "typings-test"; | ||||
| import "should"; | ||||
							
								
								
									
										24
									
								
								test/test.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								test/test.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| "use strict"; | ||||
| require("typings-test"); | ||||
| require("should"); | ||||
| const socketIoClient = require("socket.io-client"); | ||||
| const smartsocket = require("../dist/index"); | ||||
| let testSmartsocket; | ||||
| describe("smartsocket", function () { | ||||
|     it("should create a new smartsocket", function () { | ||||
|         testSmartsocket = new smartsocket.Smartsocket({ port: 3000 }); | ||||
|         testSmartsocket.should.be.instanceOf(smartsocket.Smartsocket); | ||||
|     }); | ||||
|     it("should react to a new websocket connection", function (done) { | ||||
|         this.timeout(10000); | ||||
|         let socket = socketIoClient("http://localhost:3000", {}); | ||||
|         socket.on("requestAuth", function () { | ||||
|             console.log("server requested authentication"); | ||||
|             socket.emit("dataAuth", { | ||||
|                 secret: "hello" | ||||
|             }); | ||||
|             done(); | ||||
|         }); | ||||
|     }); | ||||
| }); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsUUFBTyxRQUFRLENBQUMsQ0FBQTtBQUNoQixNQUFPLGNBQWMsV0FBVyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ3BELE1BQU8sV0FBVyxXQUFXLGVBQWUsQ0FBQyxDQUFDO0FBRTlDLElBQUksZUFBd0MsQ0FBQztBQUU3QyxRQUFRLENBQUMsYUFBYSxFQUFFO0lBQ3BCLEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRTtRQUNsQyxlQUFlLEdBQUcsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUQsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRSxDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxVQUFVLElBQUk7UUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixJQUFJLE1BQU0sR0FBRyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUU7WUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixNQUFNLEVBQUUsT0FBTzthQUNsQixDQUFDLENBQUM7WUFDSCxJQUFJLEVBQUUsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQyJ9 | ||||
							
								
								
									
										24
									
								
								test/test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								test/test.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| import "typings-test"; | ||||
| import "should"; | ||||
| import socketIoClient = require("socket.io-client"); | ||||
| import smartsocket = require("../dist/index"); | ||||
|  | ||||
| let testSmartsocket: smartsocket.Smartsocket; | ||||
|  | ||||
| describe("smartsocket", function () { | ||||
|     it("should create a new smartsocket", function () { | ||||
|         testSmartsocket = new smartsocket.Smartsocket({ port: 3000 }); | ||||
|         testSmartsocket.should.be.instanceOf(smartsocket.Smartsocket); | ||||
|     }); | ||||
|     it("should react to a new websocket connection", function (done) { | ||||
|         this.timeout(10000); | ||||
|         let socket = socketIoClient("http://localhost:3000", {}); | ||||
|         socket.on("requestAuth", function () { | ||||
|             console.log("server requested authentication"); | ||||
|             socket.emit("dataAuth", { | ||||
|                 secret: "hello" | ||||
|             }); | ||||
|             done(); | ||||
|         }); | ||||
|     }) | ||||
| }); | ||||
| @@ -0,0 +1,4 @@ | ||||
| import * as plugins from "./smartsocket.plugins"; | ||||
|  | ||||
| export * from "./smartsocket.classes.smartsocket"; | ||||
| export * from "./smartsocket.classes.smartsocketclient"; | ||||
|   | ||||
| @@ -1,6 +0,0 @@ | ||||
| import "typings-global"; | ||||
| export import beautylog = require("beautylog"); | ||||
| export import lik  = require("lik"); | ||||
| export import q = require("q"); | ||||
| export import socketIo = require("socket.io");  | ||||
| export import taskbuffer = require("taskbuffer"); | ||||
							
								
								
									
										50
									
								
								ts/smartsocket.classes.smartsocket.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								ts/smartsocket.classes.smartsocket.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| import * as plugins from "./smartsocket.plugins"; | ||||
| import * as helpers from "./smartsocket.helpers"; | ||||
|  | ||||
| // classes | ||||
| import { Objectmap } from "lik"; | ||||
|  | ||||
| export interface ISocketObject { | ||||
|     group?:string, | ||||
|     socket: SocketIO.Socket, | ||||
|     authenticated: boolean | ||||
| }; | ||||
|  | ||||
| export interface ISmartsocketConstructorOptions { | ||||
|     port: number; | ||||
|  | ||||
| } | ||||
|  | ||||
| export class Smartsocket { | ||||
|     io: SocketIO.Server; | ||||
|     openSockets = new Objectmap(); | ||||
|     constructor(options: ISmartsocketConstructorOptions) { | ||||
|         this.io = plugins.socketIo(options.port); | ||||
|         this.io.on('connection', this._handleSocket); | ||||
|     }; | ||||
|  | ||||
|     /** | ||||
|      * the standard handler for new socket connections | ||||
|      */ | ||||
|     private _handleSocket(socket) { | ||||
|         let socketObject: ISocketObject = { | ||||
|             socket: socket, | ||||
|             authenticated: false | ||||
|         }; | ||||
|         this.openSockets.add(socketObject); | ||||
|         helpers.authenticateSocket(socketObject) | ||||
|             .then(); | ||||
|     } | ||||
|  | ||||
|     registerGroup(string){ | ||||
|          | ||||
|     } | ||||
|  | ||||
|     closeServer = () => { | ||||
|         this.io.close(); | ||||
|         this.openSockets.forEach((socketObjectArg: ISocketObject) => { | ||||
|             socketObjectArg.socket.disconnect(); | ||||
|         }); | ||||
|         this.openSockets.wipe(); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										15
									
								
								ts/smartsocket.classes.smartsocketclient.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								ts/smartsocket.classes.smartsocketclient.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| import * as plugins from "./smartsocket.plugins" | ||||
|  | ||||
| /** | ||||
|  * interface for class SmartsocketClient | ||||
|  */ | ||||
| export interface ISmartsocketClientOptions { | ||||
|     port:number; | ||||
|     url:string; | ||||
| } | ||||
|  | ||||
| export class SmartsocketClient { | ||||
|     constructor(){ | ||||
|  | ||||
|     } | ||||
| } | ||||
							
								
								
									
										10
									
								
								ts/smartsocket.classes.socketrole.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								ts/smartsocket.classes.socketrole.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| import * as plugins from "./smartsocket.plugins"; | ||||
|  | ||||
| /** | ||||
|  * A socketrole defines access to certain routines. | ||||
|  */ | ||||
| class Role { | ||||
|     constructor(){ | ||||
|  | ||||
|     } | ||||
| } | ||||
							
								
								
									
										20
									
								
								ts/smartsocket.helpers.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								ts/smartsocket.helpers.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| import * as plugins from "./smartsocket.plugins"; | ||||
|  | ||||
| // interfaces | ||||
| import {ISocketObject} from "./smartsocket.classes.smartsocket"; | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * authenticate a socket | ||||
|  */ | ||||
| export let authenticateSocket = (socketObjectArg: ISocketObject) => { | ||||
|     let done = plugins.q.defer(); | ||||
|     socketObjectArg.socket.on("dataAuth", data => { | ||||
|         socketObjectArg.socket.removeListener("dataAuth", () => { }); | ||||
|         done.resolve(); | ||||
|     }); | ||||
|     socketObjectArg.socket.emit("requestAuth"); | ||||
|     return done.promise; | ||||
| }; | ||||
							
								
								
									
										7
									
								
								ts/smartsocket.plugins.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								ts/smartsocket.plugins.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| import "typings-global"; | ||||
| export import beautylog = require("beautylog"); | ||||
| export import lik  = require("lik"); | ||||
| export import q = require("q"); | ||||
| export import socketIo = require("socket.io"); | ||||
| export import socketIoClient = require("socket.io-client"); | ||||
| export import taskbuffer = require("taskbuffer"); | ||||
		Reference in New Issue
	
	Block a user