IPPressure
This commit is contained in:
		
							parent
							
								
									d50f9250e8
								
							
						
					
					
						commit
						e93871ed81
					
				| 
						 | 
				
			
			@ -19,6 +19,9 @@ exports.http = server;
 | 
			
		|||
app.get("/script",(request, response)=>{
 | 
			
		||||
    response.sendFile(resolve("./script/index.js"))
 | 
			
		||||
});
 | 
			
		||||
app.get("/index.js.map",(request, response)=>{
 | 
			
		||||
    response.sendFile(resolve("./script/index.js.map"))
 | 
			
		||||
});
 | 
			
		||||
app.get("*",(request, response)=>{
 | 
			
		||||
    response.sendFile(resolve("./script/status.xml"))
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -178,6 +178,12 @@ addService(({
 | 
			
		|||
    switch(type)
 | 
			
		||||
    {
 | 
			
		||||
        case "alloc/APIPAddress":{
 | 
			
		||||
            if(client.APIPAddress) {
 | 
			
		||||
                end({
 | 
			
		||||
                    status : "sucess",
 | 
			
		||||
                    ip : client.APIPAddress
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
            let value = APIPAddress.lock(client);
 | 
			
		||||
            end({
 | 
			
		||||
                status : "sucess",
 | 
			
		||||
| 
						 | 
				
			
			@ -186,6 +192,12 @@ addService(({
 | 
			
		|||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case "alloc/APNumber":{
 | 
			
		||||
            if(client.APNumber) {
 | 
			
		||||
                end({
 | 
			
		||||
                    status : "sucess",
 | 
			
		||||
                    number : client.APNumber
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
            let value = APNumber.lock(client);
 | 
			
		||||
            end({
 | 
			
		||||
                status : "sucess",
 | 
			
		||||
| 
						 | 
				
			
			@ -194,6 +206,12 @@ addService(({
 | 
			
		|||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case "alloc/APShortCode":{
 | 
			
		||||
            if(client.APShortCode) {
 | 
			
		||||
                end({
 | 
			
		||||
                    status : "sucess",
 | 
			
		||||
                    code : client.APShortCode
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
            let value = APShortCode.lock(client);
 | 
			
		||||
            end({
 | 
			
		||||
                status : "sucess",
 | 
			
		||||
| 
						 | 
				
			
			@ -202,6 +220,11 @@ addService(({
 | 
			
		|||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case "realloc/APIPAddress":{
 | 
			
		||||
            if(client.APIPAddress == 0){
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail"
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
            APIPAddress.release(client.APIPAddress);
 | 
			
		||||
            let value = APIPAddress.lock(client);
 | 
			
		||||
            end({
 | 
			
		||||
| 
						 | 
				
			
			@ -211,6 +234,11 @@ addService(({
 | 
			
		|||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case "realloc/APNumber":{
 | 
			
		||||
            if(client.APNumber == 0){
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail"
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
            APNumber.release(client.APNumber);
 | 
			
		||||
            let value = APNumber.lock(client);
 | 
			
		||||
            end({
 | 
			
		||||
| 
						 | 
				
			
			@ -220,6 +248,11 @@ addService(({
 | 
			
		|||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case "realloc/APShortCode":{
 | 
			
		||||
            if(client.APShortCode == 0){
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail"
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
            APShortCode.release(client.APShortCode);
 | 
			
		||||
            let value = APShortCode.lock(client);
 | 
			
		||||
            end({
 | 
			
		||||
| 
						 | 
				
			
			@ -257,6 +290,10 @@ addService(({
 | 
			
		|||
                    status : "sucess",
 | 
			
		||||
                    socket : socketId
 | 
			
		||||
                })
 | 
			
		||||
            }else{
 | 
			
		||||
                end({
 | 
			
		||||
                    status : "fail"
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -268,6 +305,10 @@ addService(({
 | 
			
		|||
                    status : "sucess",
 | 
			
		||||
                    socket : socketId
 | 
			
		||||
                })
 | 
			
		||||
            }else{
 | 
			
		||||
                end({
 | 
			
		||||
                    status : "fail"
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -279,6 +320,10 @@ addService(({
 | 
			
		|||
                    status : "sucess",
 | 
			
		||||
                    socket : socketId
 | 
			
		||||
                })
 | 
			
		||||
            }else{
 | 
			
		||||
                end({
 | 
			
		||||
                    status : "fail"
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,4 +4,5 @@ require("./WebSocket.js");
 | 
			
		|||
require("./Services/YourID.js");
 | 
			
		||||
require("./Services/Auth.js");
 | 
			
		||||
require("./Services/Room.js");
 | 
			
		||||
require("./Services/DataTransfer.js");
 | 
			
		||||
require("./Services/DataTransfer.js");
 | 
			
		||||
require("./Services/IPPressure.js");
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,198 @@
 | 
			
		|||
import MWSE from "frontend";
 | 
			
		||||
 | 
			
		||||
export class IPPressure
 | 
			
		||||
{
 | 
			
		||||
    public mwse : MWSE;
 | 
			
		||||
    public APNumber? : number;
 | 
			
		||||
    public APShortCode? : string;
 | 
			
		||||
    public APIPAddress? : string;
 | 
			
		||||
    constructor(mwse : MWSE){
 | 
			
		||||
        this.mwse = mwse;
 | 
			
		||||
    };
 | 
			
		||||
    public async allocAPIPAddress()
 | 
			
		||||
    {
 | 
			
		||||
        let {status,ip} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'alloc/APIPAddress'
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
            ip?:string
 | 
			
		||||
        };
 | 
			
		||||
        if(status == 'success')
 | 
			
		||||
        {
 | 
			
		||||
            this.APIPAddress = ip;
 | 
			
		||||
            return ip;
 | 
			
		||||
        }else{
 | 
			
		||||
            throw new Error("Error Allocated Access Point IP Address");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async allocAPNumber()
 | 
			
		||||
    {
 | 
			
		||||
        let {status,number} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'alloc/APNumber'
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
            number?:number
 | 
			
		||||
        };
 | 
			
		||||
        if(status == 'success')
 | 
			
		||||
        {
 | 
			
		||||
            this.APNumber = number;
 | 
			
		||||
            return number;
 | 
			
		||||
        }else{
 | 
			
		||||
            throw new Error("Error Allocated Access Point Number");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async allocAPShortCode()
 | 
			
		||||
    {
 | 
			
		||||
        let {status,code} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'alloc/APShortCode'
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
            code?:string
 | 
			
		||||
        };
 | 
			
		||||
        if(status == 'success')
 | 
			
		||||
        {
 | 
			
		||||
            this.APShortCode = code;
 | 
			
		||||
            return code;
 | 
			
		||||
        }else{
 | 
			
		||||
            throw new Error("Error Allocated Access Point Short Code");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async reallocAPIPAddress()
 | 
			
		||||
    {
 | 
			
		||||
        let {status,ip} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'realloc/APIPAddress'
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
            ip?:string
 | 
			
		||||
        };
 | 
			
		||||
        if(status == 'success')
 | 
			
		||||
        {
 | 
			
		||||
            this.APIPAddress = ip;
 | 
			
		||||
            return ip;
 | 
			
		||||
        }else{
 | 
			
		||||
            throw new Error("Error Reallocated Access Point IP Address");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async reallocAPNumber()
 | 
			
		||||
    {
 | 
			
		||||
        let {status,number} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'realloc/APNumber'
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
            number?:number
 | 
			
		||||
        };
 | 
			
		||||
        if(status == 'success')
 | 
			
		||||
        {
 | 
			
		||||
            this.APNumber = number;
 | 
			
		||||
            return number;
 | 
			
		||||
        }else{
 | 
			
		||||
            throw new Error("Error Reallocated Access Point Number");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async reallocAPShortCode()
 | 
			
		||||
    {
 | 
			
		||||
        let {status,code} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'realloc/APShortCode'
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
            code?:string
 | 
			
		||||
        };
 | 
			
		||||
        if(status == 'success')
 | 
			
		||||
        {
 | 
			
		||||
            this.APShortCode = code;
 | 
			
		||||
            return code;
 | 
			
		||||
        }else{
 | 
			
		||||
            throw new Error("Error Reallocated Access Point Short Code");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async releaseAPIPAddress()
 | 
			
		||||
    {
 | 
			
		||||
        let {status} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'release/APIPAddress'
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
        };
 | 
			
		||||
        if(status == 'success')
 | 
			
		||||
        {
 | 
			
		||||
            this.APIPAddress = undefined;
 | 
			
		||||
        }else{
 | 
			
		||||
            throw new Error("Error release Access Point IP Address");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async releaseAPNumber()
 | 
			
		||||
    {
 | 
			
		||||
        let {status} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'release/APNumber'
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
        };
 | 
			
		||||
        if(status == 'success')
 | 
			
		||||
        {
 | 
			
		||||
            this.APNumber = undefined;
 | 
			
		||||
        }else{
 | 
			
		||||
            throw new Error("Error release Access Point Number");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async releaseAPShortCode()
 | 
			
		||||
    {
 | 
			
		||||
        let {status} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'release/APShortCode'
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:string
 | 
			
		||||
        };
 | 
			
		||||
        if(status == 'success')
 | 
			
		||||
        {
 | 
			
		||||
            this.APShortCode = undefined;
 | 
			
		||||
        }else{
 | 
			
		||||
            throw new Error("Error release Access Point Short Code");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async queryAPIPAddress(ip:string)
 | 
			
		||||
    {
 | 
			
		||||
        let {status,socket} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'alloc/APIPAddress',
 | 
			
		||||
            whois: ip
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
            socket?:string
 | 
			
		||||
        };
 | 
			
		||||
        if(status == "success")
 | 
			
		||||
        {
 | 
			
		||||
            return socket;
 | 
			
		||||
        }else{
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async queryAPNumber(number:number)
 | 
			
		||||
    {
 | 
			
		||||
        let {status,socket} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'alloc/APNumber',
 | 
			
		||||
            whois: number
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
            socket?:string
 | 
			
		||||
        };
 | 
			
		||||
        if(status == "success")
 | 
			
		||||
        {
 | 
			
		||||
            return socket;
 | 
			
		||||
        }else{
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    public async queryAPShortCode(code:string)
 | 
			
		||||
    {
 | 
			
		||||
        let {status,socket} = await this.mwse.EventPooling.request({
 | 
			
		||||
            type: 'alloc/APShortCode',
 | 
			
		||||
            whois: code
 | 
			
		||||
        }) as {
 | 
			
		||||
            status:"fail"|"success",
 | 
			
		||||
            socket?:string
 | 
			
		||||
        };
 | 
			
		||||
        if(status == "success")
 | 
			
		||||
        {
 | 
			
		||||
            return socket;
 | 
			
		||||
        }else{
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
import {Connection,IConnection} from "./Connection";
 | 
			
		||||
import EventPool from "./EventPool";
 | 
			
		||||
import EventTarget from "./EventTarget";
 | 
			
		||||
import { IPPressure } from "./IPPressure";
 | 
			
		||||
import Peer from "./Peer";
 | 
			
		||||
import Room, { IRoomOptions } from "./Room";
 | 
			
		||||
import WSTSProtocol, { Message } from "./WSTSProtocol";
 | 
			
		||||
| 
						 | 
				
			
			@ -11,13 +12,15 @@ export default class MWSE extends EventTarget {
 | 
			
		|||
    public rooms : Map<string, Room> = new Map();
 | 
			
		||||
    public pairs : Map<string, Peer> = new Map();
 | 
			
		||||
    public peers : Map<string, Peer> = new Map();
 | 
			
		||||
    public virtualPressure : IPPressure;
 | 
			
		||||
    public me! : Peer;
 | 
			
		||||
    constructor(options: IConnection){
 | 
			
		||||
        super();
 | 
			
		||||
        this.server = new Connection(options);
 | 
			
		||||
        this.server.connect();
 | 
			
		||||
        this.WSTSProtocol = new WSTSProtocol(this);
 | 
			
		||||
        this.EventPooling = new EventPool(this);
 | 
			
		||||
        this.virtualPressure = new IPPressure(this);
 | 
			
		||||
        this.server.connect();
 | 
			
		||||
        this.me = new Peer(this);
 | 
			
		||||
        this.me.scope(()=>{
 | 
			
		||||
            this.peers.set('me', this.me);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue