2022-08-26 16:48:17 +08:00

70 lines
2.4 KiB
TypeScript

import { CoroutineV2 } from "../../CoroutineV2/CoroutineV2";
import { INetResponse } from "../Core/INetResponse";
import { NetConnector } from "../NetConnector";
import { NetManager } from "../NetManager";
import { Slot1_SpinRequestExample } from "./Slot1_SpinRequestExample";
const {ccclass, property} = cc._decorator;
@ccclass
export default class NetTester extends cc.Component {
onConnectClicked() {
CoroutineV2.StartCoroutine(this.ConnectAsync());
}
*ConnectAsync() {
if (!NetManager.HasInit) {
let conn = new NetConnector("192.168.7.165", 9005);
conn.OnDataReceived.AddCallback(this.OnNetDataReceived, this);
conn.OnDisconnected.AddCallback(this.OnNetDisconnected, this);
conn.OnLoadUIMask.AddCallback(this.OnLoadUIMask, this);
NetManager.Initialize(conn);
}
cc.log("連線中...");
yield NetManager.ConnectAsync(); // 同個connector要再次連線, 可以不用叫CasinoNetManager.Initialize(), 但要先叫CasinoNetManager.Disconnect()
cc.log(`連線狀態: ${NetManager.IsConnected}`);
}
onDisconnectClicked() {
cc.log("中斷連線中...");
NetManager.Disconnect(); // 中斷連線
}
onSendMessageClicked1() {
cc.log("發送訊息(不使用協程)");
let req = new Slot1_SpinRequestExample(401);
req.Send();
// CasinoNetManager.Send(req);
}
onSendMessageClicked2() {
CoroutineV2.StartCoroutine(this.SendAsync());
}
*SendAsync() {
cc.log("發送訊息中(使用協程)...");
let req = new Slot1_SpinRequestExample(399);
yield req.SendAsync();
// yield CasinoNetManager.SendAsync(req);
let resp = req.Result;
cc.log(`發送協程完畢, Server回應: ${resp.Method}(${JSON.stringify(resp.Data)}), 狀態: ${resp.Status}`);
// cc.log(`使用介面資料: ${resp.Data.slot}`);
}
private OnNetDisconnected() {
cc.log("[事件] 收到連線中斷事件");
}
private OnNetDataReceived(resp: INetResponse<any>) {
cc.log(`[事件] 收到server呼叫: ${resp.Method}(${JSON.stringify(resp.Data)}), 狀態: ${resp.Status}`);
}
private OnLoadUIMask(value: boolean) {
cc.log(`[事件] LoadUIMask: ${value}`);
}
}