update structure
This commit is contained in:
parent
8b419711fc
commit
309284ab68
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,3 +1,3 @@
|
|||||||
node_modules
|
node_modules/
|
||||||
coverage
|
coverage/
|
||||||
docs/
|
docs/
|
37
README.md
37
README.md
@ -7,3 +7,40 @@ easy and secure websocket communication
|
|||||||
## Usage
|
## Usage
|
||||||
We recommend the use of typescript.
|
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",
|
"version": "1.0.0",
|
||||||
"description": "easy and secure websocket communication",
|
"description": "easy and secure websocket communication",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
"typings":"dist/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "(npmts)"
|
"test": "(npmts)"
|
||||||
},
|
},
|
||||||
@ -17,10 +18,18 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/smartsocket#README",
|
"homepage": "https://gitlab.com/pushrocks/smartsocket#README",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@types/q": "0.x.x",
|
||||||
|
"@types/socket.io": "^1.4.26",
|
||||||
|
"@types/socket.io-client": "^1.4.26",
|
||||||
"beautylog": "^5.0.20",
|
"beautylog": "^5.0.20",
|
||||||
"lik": "^1.0.9",
|
"lik": "^1.0.9",
|
||||||
"q": "^1.4.1",
|
"q": "^1.4.1",
|
||||||
"socket.io": "^1.4.8",
|
"socket.io": "^1.4.8",
|
||||||
|
"socket.io-client": "^1.4.8",
|
||||||
"taskbuffer": "^1.0.7"
|
"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");
|
Loading…
Reference in New Issue
Block a user