diff --git a/assets/script/game/common/net/NetGameTips.ts b/assets/script/game/common/net/NetGameTips.ts index 2086384..437cac4 100644 --- a/assets/script/game/common/net/NetGameTips.ts +++ b/assets/script/game/common/net/NetGameTips.ts @@ -1,7 +1,7 @@ /* * @Date: 2021-08-12 09:33:37 * @LastEditors: dgflash - * @LastEditTime: 2022-06-14 17:52:37 + * @LastEditTime: 2022-07-22 18:09:52 */ import { Message } from "../../../../../extensions/oops-framework/assets/core/common/event/MessageManager"; import { Logger } from "../../../../../extensions/oops-framework/assets/core/common/log/Logger"; @@ -24,12 +24,6 @@ export class NetGameTips implements INetworkTips { } } - disconnectTips(): void { - tips.alert("net_server_disconnected", () => { - // netChannel.gameConnect(); - }) - } - /** 重连接提示 */ reconnectTips(isShow: boolean): void { } diff --git a/doc/core/network.md b/doc/core/network.md new file mode 100644 index 0000000..98ef7aa --- /dev/null +++ b/doc/core/network.md @@ -0,0 +1,109 @@ +### 功能说明 +OopsFramework-网络模块WebSocket处理客户端与服务之间保持长链接通讯。 + +### 使用说明 +##### 自定义网络通讯数据协议(GZip压缩) +``` +class GameProtocol extends NetProtocolPako { + /** 心跳协议 */ + getHearbeat(): NetData { + return `{"action":"LoginAction","method":"heart","data":"null","isCompress":false,"channelid":1,"callback":"LoginAction_heart"}`; + } +} +``` + +##### 创建一个WebSocket网络连接对象 +``` +var net = new NetNodeGame(); +var ws = new WebSock(); // WebSocket 网络连接对象 +var gp = new GameProtocol(); // 网络通讯协议对象 +var gt = new NetGameTips() // 网络提示对象 +net.init(ws, gp, gt); +NetManager.getInstance().setNetNode(net, NetChannelType.Game); +``` + +##### 连接游戏服务器 +``` +var options = { + url: `ws://127.0.0.1:3000`, + autoReconnect: 0 // -1 永久重连,0不自动重连,其他正整数为自动重试次数 +} +NetManager.getInstance().connect(options, NetChannelType.Game); +``` + +##### 断开游戏服务器连接 +``` +NetManager.getInstance().close(undefined, undefined, NetChannelType.Game); + +``` + +##### 游戏服务器提示 +``` +export class NetGameTips implements INetworkTips { + /** 连接提示 */ + connectTips(isShow: boolean): void { + if (isShow) { + Logger.logNet("游戏服务器正在连接"); + tips.netInstableOpen(); + } + else { + Logger.logNet("游戏服务器连接成功"); + tips.netInstableClose(); + Message.dispatchEvent(GameEvent.GameServerConnected); + } + } + + /** 重连接提示 */ + reconnectTips(isShow: boolean): void { + if (isShow) { + Logger.logNet("重连开始"); + } + else { + Logger.logNet("重连成功"); + } + } + + /** 请求提示 */ + requestTips(isShow: boolean): void { + if (isShow) { + Logger.logNet("请求数据开始"); + } + else { + Logger.logNet("请求数据完成"); + } + } + + /** 响应错误码提示 */ + responseErrorCode(code: number): void { + console.log("游戏服务器错误码", code); + } +} +``` + +##### 请求服务器数据 +``` +var params: any = { + playerId: 10000 +} + +let onComplete = { + target: this, + callback: (data: any) => { + // 服务器返回数据 + console.log(data); + } +} +// net为NetNodeGame对象 +net.req("LoginAction", "loadPlayer", params, onComplete); +``` + +##### 监听服务器推送数据 +``` +var onComplete = (data: any) => { + // 服务器返回数据 + console.log(data); +} + +// net为NetNodeGame对象 +net.setResponeHandler("notify", onComplete, this); +``` \ No newline at end of file