网络模块文档

This commit is contained in:
dgflash
2022-07-22 18:33:16 +08:00
parent 2c68de3c8b
commit 13c4ce217e
2 changed files with 110 additions and 7 deletions

View File

@@ -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 { }

109
doc/core/network.md Normal file
View File

@@ -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);
```