diff --git a/frontend/EventPool.ts b/frontend/EventPool.ts index 623bb43..885cff4 100644 --- a/frontend/EventPool.ts +++ b/frontend/EventPool.ts @@ -1,13 +1,13 @@ -import WSTS from "./index"; +import MWSE from "./index"; import { Message } from "./WSTSProtocol"; export default class EventPool { - public wsts : WSTS; + public wsts : MWSE; public events : Map = new Map(); public signals : Map = new Map(); public count = 0; - constructor(wsts:WSTS){ + constructor(wsts:MWSE){ this.wsts = wsts; } public request(msg: Message) : Promise diff --git a/frontend/Peer.ts b/frontend/Peer.ts new file mode 100644 index 0000000..f5ac22a --- /dev/null +++ b/frontend/Peer.ts @@ -0,0 +1,17 @@ +import MWSE from "./index"; + +interface IPeerOptions{ + +}; + +export default class Peer +{ + public wsts : MWSE; + public options! : IPeerOptions; + constructor(wsts:MWSE){ + this.wsts = wsts; + } + setPeerOptions(options:IPeerOptions){ + this.options = options; + } +} \ No newline at end of file diff --git a/frontend/Room.ts b/frontend/Room.ts index c1a5db9..3a4dd34 100644 --- a/frontend/Room.ts +++ b/frontend/Room.ts @@ -1,4 +1,4 @@ -import WSTS from "./index"; +import MWSE from "./index"; export interface IRoomOptions { @@ -16,11 +16,11 @@ export interface IRoomOptions export default class Room { - public wsts : WSTS; + public mwse : MWSE; public options! : IRoomOptions; public events : {[key:string]:Function[]} = {}; - constructor(wsts:WSTS){ - this.wsts = wsts; + constructor(wsts:MWSE){ + this.mwse = wsts; } public setRoomOptions(options : IRoomOptions) { diff --git a/frontend/WSTSProtocol.ts b/frontend/WSTSProtocol.ts index 41bb14f..a2321ea 100644 --- a/frontend/WSTSProtocol.ts +++ b/frontend/WSTSProtocol.ts @@ -1,50 +1,50 @@ -import WSTS from "./index"; +import MWSE from "./index"; export interface Message { [key:string|number]:any; } export default class WSTSProtocol { - public wsts : WSTS; - constructor(wsts:WSTS){ - this.wsts = wsts; + public mwse : MWSE; + constructor(wsts:MWSE){ + this.mwse = wsts; this.addListener(); } public addListener() { - this.wsts.server?.onRecaivePack((pack)=>{ + this.mwse.server?.onRecaivePack((pack)=>{ this.PackAnalyze(pack) }) } public SendRaw(pack: Message) { - this.wsts.server.tranferToServer(pack); + this.mwse.server.tranferToServer(pack); } public SendOnly(pack: Message) { - this.wsts.server.tranferToServer([pack,'R']); + this.mwse.server.tranferToServer([pack,'R']); } public SendRequest(pack: Message, id: number) { - this.wsts.server.tranferToServer([pack, id, 'R']); + this.mwse.server.tranferToServer([pack, id, 'R']); } public StartStream(pack: Message, id: number) { - this.wsts.server.tranferToServer([pack, id, 'S']); + this.mwse.server.tranferToServer([pack, id, 'S']); } public PackAnalyze(data:any) { let [payload, id, action] = JSON.parse(data); if(typeof id === 'number') { - let callback = this.wsts.EventPooling.events.get(id); + let callback = this.mwse.EventPooling.events.get(id); if(callback) { callback[0](payload, action); switch(action) { case 'E':{ // [E]ND flag - this.wsts.EventPooling.events.delete(id); + this.mwse.EventPooling.events.delete(id); break; } case 'S': // [S]TREAM flag @@ -54,7 +54,7 @@ export default class WSTSProtocol } }else console.warn("Missing event sended from server"); }else{ - let signals = this.wsts.EventPooling.signals.get(id); + let signals = this.mwse.EventPooling.signals.get(id); if(signals) { for (const callback of signals) { diff --git a/frontend/index.ts b/frontend/index.ts index 2b63639..351e29e 100644 --- a/frontend/index.ts +++ b/frontend/index.ts @@ -1,12 +1,14 @@ import {Connection,IConnection} from "./Connection"; import EventPool from "./EventPool"; +import Peer from "./Peer"; import Room, { IRoomOptions } from "./Room"; import WSTSProtocol from "./WSTSProtocol"; -export default class WSTS { +export default class MWSE { public server! : Connection; public WSTSProtocol! : WSTSProtocol; public EventPooling! : EventPool; public rooms : Map = new Map(); + public pairs : Map = new Map(); constructor(options: IConnection){ this.server = new Connection(options); this.server.connect(); @@ -19,4 +21,18 @@ export default class WSTS { room.setRoomOptions(options); return room; } -} \ No newline at end of file + public peer(options: IRoomOptions) + { + let peer = new Peer(this); + peer.setPeerOptions(options); + return peer; + } +}; + +declare global { + interface Window { + MWSE: any; + } +} + +window.MWSE = MWSE; \ No newline at end of file diff --git a/script/index.js b/script/index.js index 12388b1..b1c7c1a 100644 --- a/script/index.js +++ b/script/index.js @@ -148,12 +148,15 @@ parcelHelpers.defineInteropFlag(exports); var _connection = require("./Connection"); var _eventPool = require("./EventPool"); var _eventPoolDefault = parcelHelpers.interopDefault(_eventPool); +var _peer = require("./Peer"); +var _peerDefault = parcelHelpers.interopDefault(_peer); var _room = require("./Room"); var _roomDefault = parcelHelpers.interopDefault(_room); var _wstsprotocol = require("./WSTSProtocol"); var _wstsprotocolDefault = parcelHelpers.interopDefault(_wstsprotocol); -class WSTS { +class MWSE { rooms = new Map(); + pairs = new Map(); constructor(options){ this.server = new (0, _connection.Connection)(options); this.server.connect(); @@ -165,10 +168,16 @@ class WSTS { room.setRoomOptions(options); return room; } + peer(options) { + let peer = new (0, _peerDefault.default)(this); + peer.setPeerOptions(options); + return peer; + } } -exports.default = WSTS; +exports.default = MWSE; +window.MWSE = MWSE; -},{"./Connection":"dzYK1","@parcel/transformer-js/src/esmodule-helpers.js":"i1YYE","./WSTSProtocol":"3kvWC","./EventPool":"37Faq","./Room":"7qlv2"}],"dzYK1":[function(require,module,exports) { +},{"./Connection":"dzYK1","./EventPool":"37Faq","./Peer":"bVhKw","./Room":"7qlv2","./WSTSProtocol":"3kvWC","@parcel/transformer-js/src/esmodule-helpers.js":"i1YYE"}],"dzYK1":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "Connection", ()=>Connection); @@ -249,67 +258,7 @@ exports.export = function(dest, destName, get) { }); }; -},{}],"3kvWC":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -class WSTSProtocol { - constructor(wsts){ - this.wsts = wsts; - this.addListener(); - } - addListener() { - this.wsts.server?.onRecaivePack((pack)=>{ - this.PackAnalyze(pack); - }); - } - SendRaw(pack) { - this.wsts.server.tranferToServer(pack); - } - SendOnly(pack) { - this.wsts.server.tranferToServer([ - pack, - "R" - ]); - } - SendRequest(pack, id) { - this.wsts.server.tranferToServer([ - pack, - id, - "R" - ]); - } - StartStream(pack, id) { - this.wsts.server.tranferToServer([ - pack, - id, - "S" - ]); - } - PackAnalyze(data) { - let [payload, id, action] = JSON.parse(data); - if (typeof id === "number") { - let callback = this.wsts.EventPooling.events.get(id); - if (callback) { - callback[0](payload, action); - switch(action){ - case "E": - this.wsts.EventPooling.events.delete(id); - break; - case "S": - default: - break; - } - } else console.warn("Missing event sended from server"); - } else { - let signals = this.wsts.EventPooling.signals.get(id); - if (signals) for (const callback1 of signals)callback1(payload); - else console.warn("Missing event sended from server"); - } - } -} -exports.default = WSTSProtocol; - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"i1YYE"}],"37Faq":[function(require,module,exports) { +},{}],"37Faq":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); class EventPool { @@ -353,13 +302,26 @@ class EventPool { } exports.default = EventPool; +},{"@parcel/transformer-js/src/esmodule-helpers.js":"i1YYE"}],"bVhKw":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +class Peer { + constructor(wsts){ + this.wsts = wsts; + } + setPeerOptions(options) { + this.options = options; + } +} +exports.default = Peer; + },{"@parcel/transformer-js/src/esmodule-helpers.js":"i1YYE"}],"7qlv2":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); class Room { events = {}; constructor(wsts){ - this.wsts = wsts; + this.mwse = wsts; } setRoomOptions(options) { this.options = options; @@ -376,6 +338,66 @@ class Room { } exports.default = Room; +},{"@parcel/transformer-js/src/esmodule-helpers.js":"i1YYE"}],"3kvWC":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +class WSTSProtocol { + constructor(wsts){ + this.mwse = wsts; + this.addListener(); + } + addListener() { + this.mwse.server?.onRecaivePack((pack)=>{ + this.PackAnalyze(pack); + }); + } + SendRaw(pack) { + this.mwse.server.tranferToServer(pack); + } + SendOnly(pack) { + this.mwse.server.tranferToServer([ + pack, + "R" + ]); + } + SendRequest(pack, id) { + this.mwse.server.tranferToServer([ + pack, + id, + "R" + ]); + } + StartStream(pack, id) { + this.mwse.server.tranferToServer([ + pack, + id, + "S" + ]); + } + PackAnalyze(data) { + let [payload, id, action] = JSON.parse(data); + if (typeof id === "number") { + let callback = this.mwse.EventPooling.events.get(id); + if (callback) { + callback[0](payload, action); + switch(action){ + case "E": + this.mwse.EventPooling.events.delete(id); + break; + case "S": + default: + break; + } + } else console.warn("Missing event sended from server"); + } else { + let signals = this.mwse.EventPooling.signals.get(id); + if (signals) for (const callback1 of signals)callback1(payload); + else console.warn("Missing event sended from server"); + } + } +} +exports.default = WSTSProtocol; + },{"@parcel/transformer-js/src/esmodule-helpers.js":"i1YYE"}]},["6snCa"], "6snCa", "parcelRequiref9d4") //# sourceMappingURL=index.js.map diff --git a/script/index.js.map b/script/index.js.map index 6dcc1e1..fa15f8d 100644 --- a/script/index.js.map +++ b/script/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["frontend/index.ts","frontend/Connection.ts","../../../AppData/Roaming/npm/node_modules/parcel/node_modules/@parcel/transformer-js/src/esmodule-helpers.js","frontend/WSTSProtocol.ts","frontend/EventPool.ts","frontend/Room.ts"],"sourcesContent":["import {Connection,IConnection} from \"./Connection\";\r\nimport EventPool from \"./EventPool\";\r\nimport Room, { IRoomOptions } from \"./Room\";\r\nimport WSTSProtocol from \"./WSTSProtocol\";\r\nexport default class WSTS {\r\n public server! : Connection;\r\n public WSTSProtocol! : WSTSProtocol;\r\n public EventPooling! : EventPool;\r\n public rooms : Map = new Map();\r\n constructor(options: IConnection){\r\n this.server = new Connection(options);\r\n this.server.connect();\r\n this.WSTSProtocol = new WSTSProtocol(this);\r\n this.EventPooling = new EventPool(this);\r\n }\r\n public room(options: IRoomOptions)\r\n {\r\n let room = new Room(this);\r\n room.setRoomOptions(options);\r\n return room;\r\n }\r\n}","export interface IConnection{\r\n endpoint: string;\r\n autoPair?: boolean;\r\n}\r\nexport class Connection\r\n{\r\n public ws! : WebSocket;\r\n public endpoint : URL;\r\n public autoPair : boolean = false;\r\n public connected : boolean = false;\r\n constructor(options: IConnection){\r\n this.endpoint = new URL(options.endpoint);\r\n this.autoPair = options.autoPair || false;\r\n }\r\n public connect()\r\n {\r\n this.ws = new WebSocket(this.endpoint.href);\r\n this.addWSEvents();\r\n }\r\n public disconnect()\r\n {\r\n this.ws.close();\r\n }\r\n public addWSEvents()\r\n {\r\n this.ws.addEventListener(\"open\", () => this.eventOpen());\r\n this.ws.addEventListener(\"close\", () => this.eventClose());\r\n this.ws.addEventListener(\"error\", () => this.eventError());\r\n this.ws.addEventListener(\"message\", ({data}) => this.eventMessage(data as string | ArrayBuffer));\r\n }\r\n private eventOpen()\r\n {\r\n this.connected = true;\r\n for (const callback of this.activeConnectionEvent) {\r\n callback(void 0);\r\n }\r\n }\r\n private eventClose()\r\n {\r\n this.connected = false;\r\n }\r\n private eventError()\r\n {\r\n this.connected = false;\r\n }\r\n private recaivePackEvent : ((data:any) => any)[] = [];\r\n public onRecaivePack(func:(data:any) => any)\r\n {\r\n this.recaivePackEvent.push(func);\r\n }\r\n private activeConnectionEvent : Function[] = [];\r\n public onActive(func:Function)\r\n {\r\n if(this.connected)\r\n {\r\n func()\r\n }else{\r\n this.activeConnectionEvent.push(func);\r\n }\r\n }\r\n private eventMessage(data: string | ArrayBuffer)\r\n {\r\n if(typeof data == \"string\")\r\n {\r\n for (const callback of this.recaivePackEvent) {\r\n callback(JSON.parse(data));\r\n }\r\n }\r\n }\r\n public tranferToServer(data:any)\r\n {\r\n if(this.connected)\r\n {\r\n this.ws.send(JSON.stringify(data));\r\n }\r\n }\r\n}","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","import WSTS from \"./index\";\r\n\r\nexport interface Message {\r\n [key:string|number]:any;\r\n}\r\nexport default class WSTSProtocol\r\n{\r\n public wsts : WSTS;\r\n constructor(wsts:WSTS){\r\n this.wsts = wsts;\r\n this.addListener();\r\n }\r\n public addListener()\r\n {\r\n this.wsts.server?.onRecaivePack((pack)=>{\r\n this.PackAnalyze(pack)\r\n })\r\n }\r\n public SendRaw(pack: Message)\r\n {\r\n this.wsts.server.tranferToServer(pack);\r\n }\r\n public SendOnly(pack: Message)\r\n {\r\n this.wsts.server.tranferToServer([pack,'R']);\r\n }\r\n public SendRequest(pack: Message, id: number)\r\n {\r\n this.wsts.server.tranferToServer([pack, id, 'R']);\r\n }\r\n public StartStream(pack: Message, id: number)\r\n {\r\n this.wsts.server.tranferToServer([pack, id, 'S']);\r\n }\r\n public PackAnalyze(data:any)\r\n {\r\n let [payload, id, action] = JSON.parse(data);\r\n if(typeof id === 'number')\r\n {\r\n let callback = this.wsts.EventPooling.events.get(id);\r\n if(callback)\r\n {\r\n callback[0](payload, action);\r\n switch(action)\r\n {\r\n case 'E':{ // [E]ND flag\r\n this.wsts.EventPooling.events.delete(id);\r\n break;\r\n }\r\n case 'S': // [S]TREAM flag\r\n default:{\r\n break;\r\n }\r\n }\r\n }else console.warn(\"Missing event sended from server\");\r\n }else{\r\n let signals = this.wsts.EventPooling.signals.get(id);\r\n if(signals)\r\n {\r\n for (const callback of signals) {\r\n callback(payload);\r\n }\r\n }else console.warn(\"Missing event sended from server\");\r\n }\r\n }\r\n}","import WSTS from \"./index\";\r\nimport { Message } from \"./WSTSProtocol\";\r\n\r\nexport default class EventPool\r\n{\r\n public wsts : WSTS;\r\n public events : Map = new Map();\r\n public signals : Map = new Map();\r\n public count = 0;\r\n constructor(wsts:WSTS){\r\n this.wsts = wsts;\r\n }\r\n public request(msg: Message) : Promise\r\n {\r\n return new Promise((ok,rej) => {\r\n let id = ++this.count;\r\n this.wsts.WSTSProtocol.SendRequest(msg, id);\r\n this.events.set(id,[\r\n (data:any) => {\r\n ok(data);\r\n },\r\n (data:any) => {\r\n rej(data);\r\n }\r\n ]);\r\n })\r\n }\r\n public stream(msg: Message, callback: Function)\r\n {\r\n let id = ++this.count;\r\n this.wsts.WSTSProtocol.StartStream(msg, id);\r\n this.events.set(id,[\r\n (data:any) => {\r\n callback(data);\r\n },\r\n () => { }\r\n ]);\r\n }\r\n public signal(event: string, callback: Function)\r\n {\r\n let T = this.signals.get(event);\r\n if(!T)\r\n {\r\n this.signals.set(event, [callback]);\r\n }else{\r\n T.push(callback);\r\n }\r\n }\r\n}","import WSTS from \"./index\";\r\n\r\nexport interface IRoomOptions\r\n{\r\n name: string;\r\n description?:string;\r\n joinType: \"free\"|\"invite\"|\"password\"|\"lock\";\r\n credential?: string;\r\n ifexistsJoin?: boolean;\r\n accessType?: \"public\"|\"private\";\r\n notifyActionInvite?: boolean;\r\n notifyActionJoined?: boolean;\r\n notifyActionEjected?: boolean;\r\n}\r\n\r\n\r\nexport default class Room\r\n{\r\n public wsts : WSTS;\r\n public options! : IRoomOptions;\r\n public events : {[key:string]:Function[]} = {};\r\n constructor(wsts:WSTS){\r\n this.wsts = wsts;\r\n }\r\n public setRoomOptions(options : IRoomOptions)\r\n {\r\n this.options = options;\r\n }\r\n private emit(eventName :string, ...args:any[])\r\n {\r\n if(this.events[eventName])\r\n {\r\n for (const callback of this.events[eventName]) {\r\n callback(...args);\r\n }\r\n }\r\n }\r\n public on(eventName :string, callback:Function)\r\n {\r\n if(this.events[eventName])\r\n {\r\n this.events[eventName].push(callback)\r\n }else{\r\n this.events[eventName] = [callback];\r\n }\r\n }\r\n}"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"} \ No newline at end of file +{"mappings":"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","sources":["frontend/index.ts","frontend/Connection.ts","../../../AppData/Roaming/npm/node_modules/parcel/node_modules/@parcel/transformer-js/src/esmodule-helpers.js","frontend/EventPool.ts","frontend/Peer.ts","frontend/Room.ts","frontend/WSTSProtocol.ts"],"sourcesContent":["import {Connection,IConnection} from \"./Connection\";\r\nimport EventPool from \"./EventPool\";\r\nimport Peer from \"./Peer\";\r\nimport Room, { IRoomOptions } from \"./Room\";\r\nimport WSTSProtocol from \"./WSTSProtocol\";\r\nexport default class MWSE {\r\n public server! : Connection;\r\n public WSTSProtocol! : WSTSProtocol;\r\n public EventPooling! : EventPool;\r\n public rooms : Map = new Map();\r\n public pairs : Map = new Map();\r\n constructor(options: IConnection){\r\n this.server = new Connection(options);\r\n this.server.connect();\r\n this.WSTSProtocol = new WSTSProtocol(this);\r\n this.EventPooling = new EventPool(this);\r\n }\r\n public room(options: IRoomOptions)\r\n {\r\n let room = new Room(this);\r\n room.setRoomOptions(options);\r\n return room;\r\n }\r\n public peer(options: IRoomOptions)\r\n {\r\n let peer = new Peer(this);\r\n peer.setPeerOptions(options);\r\n return peer;\r\n }\r\n};\r\n\r\ndeclare global {\r\n interface Window {\r\n MWSE: any;\r\n }\r\n}\r\n\r\nwindow.MWSE = MWSE;","export interface IConnection{\r\n endpoint: string;\r\n autoPair?: boolean;\r\n}\r\nexport class Connection\r\n{\r\n public ws! : WebSocket;\r\n public endpoint : URL;\r\n public autoPair : boolean = false;\r\n public connected : boolean = false;\r\n constructor(options: IConnection){\r\n this.endpoint = new URL(options.endpoint);\r\n this.autoPair = options.autoPair || false;\r\n }\r\n public connect()\r\n {\r\n this.ws = new WebSocket(this.endpoint.href);\r\n this.addWSEvents();\r\n }\r\n public disconnect()\r\n {\r\n this.ws.close();\r\n }\r\n public addWSEvents()\r\n {\r\n this.ws.addEventListener(\"open\", () => this.eventOpen());\r\n this.ws.addEventListener(\"close\", () => this.eventClose());\r\n this.ws.addEventListener(\"error\", () => this.eventError());\r\n this.ws.addEventListener(\"message\", ({data}) => this.eventMessage(data as string | ArrayBuffer));\r\n }\r\n private eventOpen()\r\n {\r\n this.connected = true;\r\n for (const callback of this.activeConnectionEvent) {\r\n callback(void 0);\r\n }\r\n }\r\n private eventClose()\r\n {\r\n this.connected = false;\r\n }\r\n private eventError()\r\n {\r\n this.connected = false;\r\n }\r\n private recaivePackEvent : ((data:any) => any)[] = [];\r\n public onRecaivePack(func:(data:any) => any)\r\n {\r\n this.recaivePackEvent.push(func);\r\n }\r\n private activeConnectionEvent : Function[] = [];\r\n public onActive(func:Function)\r\n {\r\n if(this.connected)\r\n {\r\n func()\r\n }else{\r\n this.activeConnectionEvent.push(func);\r\n }\r\n }\r\n private eventMessage(data: string | ArrayBuffer)\r\n {\r\n if(typeof data == \"string\")\r\n {\r\n for (const callback of this.recaivePackEvent) {\r\n callback(JSON.parse(data));\r\n }\r\n }\r\n }\r\n public tranferToServer(data:any)\r\n {\r\n if(this.connected)\r\n {\r\n this.ws.send(JSON.stringify(data));\r\n }\r\n }\r\n}","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","import MWSE from \"./index\";\r\nimport { Message } from \"./WSTSProtocol\";\r\n\r\nexport default class EventPool\r\n{\r\n public wsts : MWSE;\r\n public events : Map = new Map();\r\n public signals : Map = new Map();\r\n public count = 0;\r\n constructor(wsts:MWSE){\r\n this.wsts = wsts;\r\n }\r\n public request(msg: Message) : Promise\r\n {\r\n return new Promise((ok,rej) => {\r\n let id = ++this.count;\r\n this.wsts.WSTSProtocol.SendRequest(msg, id);\r\n this.events.set(id,[\r\n (data:any) => {\r\n ok(data);\r\n },\r\n (data:any) => {\r\n rej(data);\r\n }\r\n ]);\r\n })\r\n }\r\n public stream(msg: Message, callback: Function)\r\n {\r\n let id = ++this.count;\r\n this.wsts.WSTSProtocol.StartStream(msg, id);\r\n this.events.set(id,[\r\n (data:any) => {\r\n callback(data);\r\n },\r\n () => { }\r\n ]);\r\n }\r\n public signal(event: string, callback: Function)\r\n {\r\n let T = this.signals.get(event);\r\n if(!T)\r\n {\r\n this.signals.set(event, [callback]);\r\n }else{\r\n T.push(callback);\r\n }\r\n }\r\n}","import MWSE from \"./index\";\r\n\r\ninterface IPeerOptions{\r\n\r\n};\r\n\r\nexport default class Peer\r\n{\r\n public wsts : MWSE;\r\n public options! : IPeerOptions;\r\n constructor(wsts:MWSE){\r\n this.wsts = wsts;\r\n }\r\n setPeerOptions(options:IPeerOptions){\r\n this.options = options;\r\n }\r\n}","import MWSE from \"./index\";\r\n\r\nexport interface IRoomOptions\r\n{\r\n name: string;\r\n description?:string;\r\n joinType: \"free\"|\"invite\"|\"password\"|\"lock\";\r\n credential?: string;\r\n ifexistsJoin?: boolean;\r\n accessType?: \"public\"|\"private\";\r\n notifyActionInvite?: boolean;\r\n notifyActionJoined?: boolean;\r\n notifyActionEjected?: boolean;\r\n}\r\n\r\n\r\nexport default class Room\r\n{\r\n public mwse : MWSE;\r\n public options! : IRoomOptions;\r\n public events : {[key:string]:Function[]} = {};\r\n constructor(wsts:MWSE){\r\n this.mwse = wsts;\r\n }\r\n public setRoomOptions(options : IRoomOptions)\r\n {\r\n this.options = options;\r\n }\r\n private emit(eventName :string, ...args:any[])\r\n {\r\n if(this.events[eventName])\r\n {\r\n for (const callback of this.events[eventName]) {\r\n callback(...args);\r\n }\r\n }\r\n }\r\n public on(eventName :string, callback:Function)\r\n {\r\n if(this.events[eventName])\r\n {\r\n this.events[eventName].push(callback)\r\n }else{\r\n this.events[eventName] = [callback];\r\n }\r\n }\r\n}","import MWSE from \"./index\";\r\n\r\nexport interface Message {\r\n [key:string|number]:any;\r\n}\r\nexport default class WSTSProtocol\r\n{\r\n public mwse : MWSE;\r\n constructor(wsts:MWSE){\r\n this.mwse = wsts;\r\n this.addListener();\r\n }\r\n public addListener()\r\n {\r\n this.mwse.server?.onRecaivePack((pack)=>{\r\n this.PackAnalyze(pack)\r\n })\r\n }\r\n public SendRaw(pack: Message)\r\n {\r\n this.mwse.server.tranferToServer(pack);\r\n }\r\n public SendOnly(pack: Message)\r\n {\r\n this.mwse.server.tranferToServer([pack,'R']);\r\n }\r\n public SendRequest(pack: Message, id: number)\r\n {\r\n this.mwse.server.tranferToServer([pack, id, 'R']);\r\n }\r\n public StartStream(pack: Message, id: number)\r\n {\r\n this.mwse.server.tranferToServer([pack, id, 'S']);\r\n }\r\n public PackAnalyze(data:any)\r\n {\r\n let [payload, id, action] = JSON.parse(data);\r\n if(typeof id === 'number')\r\n {\r\n let callback = this.mwse.EventPooling.events.get(id);\r\n if(callback)\r\n {\r\n callback[0](payload, action);\r\n switch(action)\r\n {\r\n case 'E':{ // [E]ND flag\r\n this.mwse.EventPooling.events.delete(id);\r\n break;\r\n }\r\n case 'S': // [S]TREAM flag\r\n default:{\r\n break;\r\n }\r\n }\r\n }else console.warn(\"Missing event sended from server\");\r\n }else{\r\n let signals = this.mwse.EventPooling.signals.get(id);\r\n if(signals)\r\n {\r\n for (const callback of signals) {\r\n callback(payload);\r\n }\r\n }else console.warn(\"Missing event sended from server\");\r\n }\r\n }\r\n}"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"} \ No newline at end of file diff --git a/test.html b/test.html index 43e3582..3d2208d 100644 --- a/test.html +++ b/test.html @@ -7,123 +7,12 @@ Document - + \ No newline at end of file