50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
|
import { INetRequest } from "./Core/INetRequest";
|
||
|
import { NetConnector } from "./NetConnector";
|
||
|
|
||
|
export class NetManager {
|
||
|
static get IsConnected() { return this._connector && this._connector.IsConnected; }
|
||
|
static get HasInit() { return this._connector != null; }
|
||
|
|
||
|
private static _connector: NetConnector;
|
||
|
|
||
|
static Initialize(connector: NetConnector) {
|
||
|
this._connector = connector;
|
||
|
}
|
||
|
|
||
|
static ConnectAsync() {
|
||
|
this.CheckConnector();
|
||
|
return this._connector.ConnectAsync();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 斷線
|
||
|
*/
|
||
|
static Disconnect() {
|
||
|
this.CheckConnector();
|
||
|
this._connector.Disconnect();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 傳送資料給Server, 不等待回應
|
||
|
* @param req
|
||
|
*/
|
||
|
static Send(req: INetRequest<any, any>) {
|
||
|
this.CheckConnector();
|
||
|
this._connector.Send(req);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 傳送資料給Server, 並等待回應
|
||
|
* @param req
|
||
|
*/
|
||
|
static SendAsync(req: INetRequest<any, any>,mask:boolean) {
|
||
|
this.CheckConnector();
|
||
|
return this._connector.SendAsync(req,mask);
|
||
|
}
|
||
|
|
||
|
private static CheckConnector()
|
||
|
{
|
||
|
if (!this._connector) throw new Error("請先呼叫CasinoNetManager.Initialize()初始化connector");
|
||
|
}
|
||
|
|
||
|
}
|