@cc-component/cc-core 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cc-ex-component.md +12 -0
- package/assets/core/config/CommonEnum.ts +94 -0
- package/assets/core/config/CommonEnum.ts.meta +9 -0
- package/assets/core/config/IConfig.ts +89 -0
- package/assets/core/config/IConfig.ts.meta +9 -0
- package/assets/core/config/LayerType.ts +44 -0
- package/assets/core/config/LayerType.ts.meta +9 -0
- package/assets/core/config/LayerUI.ts +113 -0
- package/assets/core/config/LayerUI.ts.meta +9 -0
- package/assets/core/config.meta +9 -0
- package/assets/core/editor/LanguageManager.ts +323 -0
- package/assets/core/editor/LanguageManager.ts.meta +9 -0
- package/assets/core/editor/SpineRunner.ts +39 -0
- package/assets/core/editor/SpineRunner.ts.meta +9 -0
- package/assets/core/editor/i18nEditorComponent.ts +137 -0
- package/assets/core/editor/i18nEditorComponent.ts.meta +9 -0
- package/assets/core/editor.meta +9 -0
- package/assets/core/home/AudioUtil.ts +164 -0
- package/assets/core/home/AudioUtil.ts.meta +9 -0
- package/assets/core/home/BaseBoxView.ts +60 -0
- package/assets/core/home/BaseBoxView.ts.meta +9 -0
- package/assets/core/home/BaseLaunchComponent.ts +9 -0
- package/assets/core/home/BaseLaunchComponent.ts.meta +9 -0
- package/assets/core/home/BaseLoading.ts +136 -0
- package/assets/core/home/BaseLoading.ts.meta +9 -0
- package/assets/core/home/BaseSkeleton.ts +39 -0
- package/assets/core/home/BaseSkeleton.ts.meta +9 -0
- package/assets/core/home/CameraAngel.ts +326 -0
- package/assets/core/home/CameraAngel.ts.meta +9 -0
- package/assets/core/home/DouYinShow.ts +27 -0
- package/assets/core/home/DouYinShow.ts.meta +9 -0
- package/assets/core/home/EventManager.ts +39 -0
- package/assets/core/home/EventManager.ts.meta +9 -0
- package/assets/core/home/ExView.ts +9 -0
- package/assets/core/home/ExView.ts.meta +9 -0
- package/assets/core/home/FollowCamera.ts +205 -0
- package/assets/core/home/FollowCamera.ts.meta +9 -0
- package/assets/core/home/InViewCenter.ts +52 -0
- package/assets/core/home/InViewCenter.ts.meta +9 -0
- package/assets/core/home/JsonUtil.ts +102 -0
- package/assets/core/home/JsonUtil.ts.meta +9 -0
- package/assets/core/home/LoadingWindow.ts +44 -0
- package/assets/core/home/LoadingWindow.ts.meta +9 -0
- package/assets/core/home/ParabolaTween.ts +110 -0
- package/assets/core/home/ParabolaTween.ts.meta +9 -0
- package/assets/core/home/ProgessView.ts +96 -0
- package/assets/core/home/ProgessView.ts.meta +9 -0
- package/assets/core/home/Quaternion.ts +237 -0
- package/assets/core/home/Quaternion.ts.meta +9 -0
- package/assets/core/home/ResUtil.ts +132 -0
- package/assets/core/home/ResUtil.ts.meta +9 -0
- package/assets/core/home/ResourceManager.ts +430 -0
- package/assets/core/home/ResourceManager.ts.meta +9 -0
- package/assets/core/home/StateMachine.ts +93 -0
- package/assets/core/home/StateMachine.ts.meta +9 -0
- package/assets/core/home/StorageManager.ts +161 -0
- package/assets/core/home/StorageManager.ts.meta +9 -0
- package/assets/core/home/ThirdFreeLookCamera.ts +201 -0
- package/assets/core/home/ThirdFreeLookCamera.ts.meta +9 -0
- package/assets/core/home/TimeManager.ts +486 -0
- package/assets/core/home/TimeManager.ts.meta +9 -0
- package/assets/core/home/Tools.ts +103 -0
- package/assets/core/home/Tools.ts.meta +9 -0
- package/assets/core/home/prefabs.meta +12 -0
- package/assets/core/home/util/EncryptUtil.ts +60 -0
- package/assets/core/home/util/EncryptUtil.ts.meta +11 -0
- package/assets/core/home/util/MathUtil.ts +22 -0
- package/assets/core/home/util/MathUtil.ts.meta +9 -0
- package/assets/core/home/util/Md5.ts +202 -0
- package/assets/core/home/util/Md5.ts.meta +11 -0
- package/assets/core/home/util/RandomUtil.ts +61 -0
- package/assets/core/home/util/RandomUtil.ts.meta +9 -0
- package/assets/core/home/util/ResUtil.ts +129 -0
- package/assets/core/home/util/ResUtil.ts.meta +9 -0
- package/assets/core/home/util/crypto-js.d.ts +30 -0
- package/assets/core/home/util/crypto-js.d.ts.meta +11 -0
- package/assets/core/home/util/crypto-js.js +6030 -0
- package/assets/core/home/util/crypto-js.js.meta +9 -0
- package/assets/core/home/util.meta +12 -0
- package/assets/core/home.meta +12 -0
- package/assets/core/interface/ISceneParam.ts +11 -0
- package/assets/core/interface/ISceneParam.ts.meta +9 -0
- package/assets/core/interface/Interface.ts +160 -0
- package/assets/core/interface/Interface.ts.meta +1 -0
- package/assets/core/interface/MainModule.ts +1019 -0
- package/assets/core/interface/MainModule.ts.meta +9 -0
- package/assets/core/interface.meta +9 -0
- package/assets/core/lib/Logger.ts +286 -0
- package/assets/core/lib/Logger.ts.meta +9 -0
- package/assets/core/lib/language/.language.md +1 -0
- package/assets/core/lib/language/Language.ts +133 -0
- package/assets/core/lib/language/Language.ts.meta +13 -0
- package/assets/core/lib/language/LanguageData.ts +114 -0
- package/assets/core/lib/language/LanguageData.ts.meta +9 -0
- package/assets/core/lib/language/LanguageLabel.ts +172 -0
- package/assets/core/lib/language/LanguageLabel.ts.meta +13 -0
- package/assets/core/lib/language/LanguagePack.ts +126 -0
- package/assets/core/lib/language/LanguagePack.ts.meta +13 -0
- package/assets/core/lib/language/LanguagePointLabel.ts.meta +16 -0
- package/assets/core/lib/language/LanguageSpine.ts +60 -0
- package/assets/core/lib/language/LanguageSpine.ts.meta +9 -0
- package/assets/core/lib/language/LanguageSprite.ts +138 -0
- package/assets/core/lib/language/LanguageSprite.ts.meta +13 -0
- package/assets/core/lib/language.meta +9 -0
- package/assets/core/lib/logger/ELoggerLevel.ts +16 -0
- package/assets/core/lib/logger/ELoggerLevel.ts.meta +9 -0
- package/assets/core/lib/logger/MLogger.ts +118 -0
- package/assets/core/lib/logger/MLogger.ts.meta +9 -0
- package/assets/core/lib/logger.meta +9 -0
- package/assets/core/lib/net/libs/proto/output/protobuf.d.ts +2729 -0
- package/assets/core/lib/net/libs/proto/output/protobuf.d.ts.meta +9 -0
- package/assets/core/lib/net/libs/proto/output/protobuf.min.js +8 -0
- package/assets/core/lib/net/libs/proto/output/protobuf.min.js.meta +9 -0
- package/assets/core/lib/net/libs/proto/output/protobuf_custom.d.ts +102 -0
- package/assets/core/lib/net/libs/proto/output/protobuf_custom.d.ts.meta +9 -0
- package/assets/core/lib/net/libs/proto/output/protobuf_custom.js +222 -0
- package/assets/core/lib/net/libs/proto/output/protobuf_custom.js.meta +9 -0
- package/assets/core/lib/net/libs/proto/output.meta +9 -0
- package/assets/core/lib/net/libs/proto/source/Cmd.proto +6 -0
- package/assets/core/lib/net/libs/proto/source/Cmd.proto.meta +11 -0
- package/assets/core/lib/net/libs/proto/source/UserLogin.proto +12 -0
- package/assets/core/lib/net/libs/proto/source/UserLogin.proto.meta +11 -0
- package/assets/core/lib/net/libs/proto/source/base.proto +24 -0
- package/assets/core/lib/net/libs/proto/source/base.proto.meta +11 -0
- package/assets/core/lib/net/libs/proto/source/command.proto +31 -0
- package/assets/core/lib/net/libs/proto/source/command.proto.meta +11 -0
- package/assets/core/lib/net/libs/proto/source/domain/boos_battle_info.proto +13 -0
- package/assets/core/lib/net/libs/proto/source/domain/boos_battle_info.proto.meta +11 -0
- package/assets/core/lib/net/libs/proto/source/domain/player_auth.proto +26 -0
- package/assets/core/lib/net/libs/proto/source/domain/player_auth.proto.meta +11 -0
- package/assets/core/lib/net/libs/proto/source/domain.meta +9 -0
- package/assets/core/lib/net/libs/proto/source/message/game_push.proto +23 -0
- package/assets/core/lib/net/libs/proto/source/message/game_push.proto.meta +11 -0
- package/assets/core/lib/net/libs/proto/source/message/game_request.proto +24 -0
- package/assets/core/lib/net/libs/proto/source/message/game_request.proto.meta +11 -0
- package/assets/core/lib/net/libs/proto/source/message/game_response.proto +24 -0
- package/assets/core/lib/net/libs/proto/source/message/game_response.proto.meta +11 -0
- package/assets/core/lib/net/libs/proto/source/message.meta +9 -0
- package/assets/core/lib/net/libs/proto/source/push/boss_battle_events.proto +43 -0
- package/assets/core/lib/net/libs/proto/source/push/boss_battle_events.proto.meta +11 -0
- package/assets/core/lib/net/libs/proto/source/push.meta +9 -0
- package/assets/core/lib/net/libs/proto/source.meta +12 -0
- package/assets/core/lib/net/libs/proto.meta +9 -0
- package/assets/core/lib/net/libs.meta +9 -0
- package/assets/core/lib/net/net/HttpManager.ts +307 -0
- package/assets/core/lib/net/net/HttpManager.ts.meta +9 -0
- package/assets/core/lib/net/net/NetInterface.ts +114 -0
- package/assets/core/lib/net/net/NetInterface.ts.meta +9 -0
- package/assets/core/lib/net/net/NetManager.ts +77 -0
- package/assets/core/lib/net/net/NetManager.ts.meta +9 -0
- package/assets/core/lib/net/net/NetNode.ts +471 -0
- package/assets/core/lib/net/net/NetNode.ts.meta +9 -0
- package/assets/core/lib/net/net/WebSock.ts +81 -0
- package/assets/core/lib/net/net/WebSock.ts.meta +9 -0
- package/assets/core/lib/net/net/custom/NetChannelManager.ts +41 -0
- package/assets/core/lib/net/net/custom/NetChannelManager.ts.meta +9 -0
- package/assets/core/lib/net/net/custom/NetConfig.ts +11 -0
- package/assets/core/lib/net/net/custom/NetConfig.ts.meta +9 -0
- package/assets/core/lib/net/net/custom/NetErrorCode.ts +4 -0
- package/assets/core/lib/net/net/custom/NetErrorCode.ts.meta +9 -0
- package/assets/core/lib/net/net/custom/NetGameTips.ts +53 -0
- package/assets/core/lib/net/net/custom/NetGameTips.ts.meta +9 -0
- package/assets/core/lib/net/net/custom/NetNodeGame.ts +105 -0
- package/assets/core/lib/net/net/custom/NetNodeGame.ts.meta +9 -0
- package/assets/core/lib/net/net/custom.meta +9 -0
- package/assets/core/lib/net/net/protocol/NetProtocolJson.ts +39 -0
- package/assets/core/lib/net/net/protocol/NetProtocolJson.ts.meta +9 -0
- package/assets/core/lib/net/net/protocol/NetProtocolProtobuf.ts +85 -0
- package/assets/core/lib/net/net/protocol/NetProtocolProtobuf.ts.meta +9 -0
- package/assets/core/lib/net/net/protocol.meta +9 -0
- package/assets/core/lib/net/net.meta +9 -0
- package/assets/core/lib/net/prompt.meta +9 -0
- package/assets/core/lib/net.meta +9 -0
- package/assets/core/lib/old/VM2.ts +619 -0
- package/assets/core/lib/old/VM2.ts.meta +9 -0
- package/assets/core/lib/old/ViewModel.ts +905 -0
- package/assets/core/lib/old/ViewModel.ts.meta +9 -0
- package/assets/core/lib/old/ViewSearch.ts +125 -0
- package/assets/core/lib/old/ViewSearch.ts.meta +9 -0
- package/assets/core/lib/old.meta +9 -0
- package/assets/core/lib/tabbar/TabBarComponent.ts +113 -0
- package/assets/core/lib/tabbar/TabBarComponent.ts.meta +9 -0
- package/assets/core/lib/tabbar/TabBarController.ts +86 -0
- package/assets/core/lib/tabbar/TabBarController.ts.meta +9 -0
- package/assets/core/lib/tabbar/TabBarItem.ts +52 -0
- package/assets/core/lib/tabbar/TabBarItem.ts.meta +9 -0
- package/assets/core/lib/tabbar.meta +9 -0
- package/assets/core/lib.meta +12 -0
- package/assets/core.meta +9 -0
- package/assets.meta +9 -0
- package/index.ts +3 -0
- package/index.ts.meta +9 -0
- package/package.json +19 -0
- package/package.json.meta +11 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package message;
|
|
4
|
+
option java_package = "com.game.tafang.protocol.message";
|
|
5
|
+
option java_outer_classname = "GameRequestProto";
|
|
6
|
+
|
|
7
|
+
import "command.proto";
|
|
8
|
+
import "domain/player_auth.proto";
|
|
9
|
+
import "domain/boos_battle_info.proto";
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
// ========== 通用请求 ==========
|
|
13
|
+
message GameRequest {
|
|
14
|
+
command.CommandType cmd = 1; // 命令类型
|
|
15
|
+
int64 seq = 2; // 序列号
|
|
16
|
+
int64 timestamp = 3; // 客户端时间戳
|
|
17
|
+
// 具体请求内容(类型安全)
|
|
18
|
+
oneof content {
|
|
19
|
+
//用户登录
|
|
20
|
+
domain.PlayerAuthRequest login = 10;
|
|
21
|
+
//用户登录
|
|
22
|
+
domain.BoosBattleRequest boos_battle = 11;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package message;
|
|
4
|
+
option java_package = "com.game.tafang.protocol.message";
|
|
5
|
+
option java_outer_classname = "GameResponseProto";
|
|
6
|
+
|
|
7
|
+
import "base.proto";
|
|
8
|
+
import "command.proto";
|
|
9
|
+
import "domain/player_auth.proto";
|
|
10
|
+
|
|
11
|
+
// ========== 通用响应 ==========
|
|
12
|
+
message GameResponse {
|
|
13
|
+
//命令
|
|
14
|
+
command.CommandType cmd = 1;
|
|
15
|
+
//序列
|
|
16
|
+
int64 seq = 2;
|
|
17
|
+
//头部信息
|
|
18
|
+
base.ResponseHeader header = 3;
|
|
19
|
+
|
|
20
|
+
oneof content {
|
|
21
|
+
//玩家信息
|
|
22
|
+
domain.PlayerInfoResponse player_info = 10;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package push;
|
|
4
|
+
option java_package = "com.game.tafang.protocol.push";
|
|
5
|
+
option java_outer_classname = "BossBattleEventsProto";
|
|
6
|
+
|
|
7
|
+
// BOSS战斗同步对象
|
|
8
|
+
message BossBattleSync {
|
|
9
|
+
|
|
10
|
+
//Boss ID
|
|
11
|
+
int32 boss_id = 1;
|
|
12
|
+
|
|
13
|
+
//Boos类型
|
|
14
|
+
int32 boss_type = 2;
|
|
15
|
+
|
|
16
|
+
//Boos名称
|
|
17
|
+
string boss_name = 3;
|
|
18
|
+
|
|
19
|
+
//最大血量
|
|
20
|
+
int32 max_hp = 4;
|
|
21
|
+
|
|
22
|
+
//BOOS战斗帧列表
|
|
23
|
+
repeated BoosBattleFrame battle_info_list = 5;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//BOSS战斗信息对象
|
|
27
|
+
message BoosBattleFrame {
|
|
28
|
+
|
|
29
|
+
//玩家ID
|
|
30
|
+
int64 player_id = 1;
|
|
31
|
+
|
|
32
|
+
//伤害值
|
|
33
|
+
int32 damage = 2;
|
|
34
|
+
|
|
35
|
+
//技能ID
|
|
36
|
+
int32 skillId = 3;
|
|
37
|
+
|
|
38
|
+
//客户端操作时间
|
|
39
|
+
int64 timestamp = 4;
|
|
40
|
+
|
|
41
|
+
//当前血量
|
|
42
|
+
int32 current_hp = 5;
|
|
43
|
+
}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: dgflash
|
|
3
|
+
* @Date: 2022-09-01 18:00:28
|
|
4
|
+
* @LastEditors: dgflash
|
|
5
|
+
* @LastEditTime: 2022-09-09 18:10:50
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { IExtData } from "../../../config/CommonEnum";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/** HTTP请求返回值 */
|
|
12
|
+
export class HttpReturn<T> {
|
|
13
|
+
/** 是否请求成功 */
|
|
14
|
+
isSucc: boolean = false;
|
|
15
|
+
/** 请求返回数据 */
|
|
16
|
+
res?: T;
|
|
17
|
+
/** 请求错误数据 */
|
|
18
|
+
err?: HttpEvent;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** 请求事件 */
|
|
22
|
+
export enum HttpEvent {
|
|
23
|
+
/** 断网 */
|
|
24
|
+
ERROR_NO_NETWORK = "ERROR_NO_NETWORK",
|
|
25
|
+
/** 未知错误 */
|
|
26
|
+
ERROR_UNKNOWN = "ERROR_UNKNOWN",
|
|
27
|
+
/** 请求超时 */
|
|
28
|
+
ERROR_TIMEOUT = "ERROR_TIMEOUT"
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** 请求后相应返回数据类型 */
|
|
32
|
+
enum HttpResponseType {
|
|
33
|
+
Text,
|
|
34
|
+
Json,
|
|
35
|
+
ArrayBuffer,
|
|
36
|
+
Blob,
|
|
37
|
+
FormData
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** 请求方法 */
|
|
41
|
+
enum HttpMethod {
|
|
42
|
+
GET = "GET",
|
|
43
|
+
POST = "POST"
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const HeaderName = 'Content-Type';
|
|
47
|
+
const HeaderValueText = 'application/text';
|
|
48
|
+
const HeaderValueJson = 'application/json';
|
|
49
|
+
const HeaderValuePb = 'application/x-protobuf';
|
|
50
|
+
|
|
51
|
+
interface HttpRequestData {
|
|
52
|
+
/** 请求对象 */
|
|
53
|
+
xhr: XMLHttpRequest,
|
|
54
|
+
/** 请求参数字符串 */
|
|
55
|
+
pss: string;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** 当前请求地址集合 */
|
|
59
|
+
let urls: Map<string, HttpRequestData> = new Map();
|
|
60
|
+
|
|
61
|
+
/** HTTP请求 */
|
|
62
|
+
export class HttpManager {
|
|
63
|
+
/** 服务器地址 */
|
|
64
|
+
server: string = "http://127.0.0.1/";
|
|
65
|
+
/** 请求超时(毫秒) */
|
|
66
|
+
timeout: number = 10000;
|
|
67
|
+
/**网络回调 函数 */
|
|
68
|
+
open: (finish: (isOk: boolean) => void) => void
|
|
69
|
+
/**
|
|
70
|
+
* GET请求获取文本格式数据
|
|
71
|
+
* @param name 协议名
|
|
72
|
+
* @param params 请求参数据
|
|
73
|
+
* @returns HTTP请求返回值
|
|
74
|
+
*/
|
|
75
|
+
getText(name: string, params: BodyInit | null = null): Promise<HttpReturn<any>> {
|
|
76
|
+
let headers: Map<string, string> = new Map();
|
|
77
|
+
headers.set(HeaderName, HeaderValueText);
|
|
78
|
+
return this.request(name, params, HttpMethod.GET, HttpResponseType.Text, headers);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* GET请求获取Json格式数据
|
|
83
|
+
* @param name 协议名
|
|
84
|
+
* @param params 请求参数据
|
|
85
|
+
* @returns HTTP请求返回值
|
|
86
|
+
*/
|
|
87
|
+
getJson(name: string, params: BodyInit | null = null): Promise<HttpReturn<any>> {
|
|
88
|
+
let headers: Map<string, string> = new Map();
|
|
89
|
+
headers.set(HeaderName, HeaderValueJson);
|
|
90
|
+
return this.request(name, params, HttpMethod.GET, HttpResponseType.Json, headers);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* POST请求获取Json格式数据
|
|
95
|
+
* @param name 协议名
|
|
96
|
+
* @param params 请求参数据
|
|
97
|
+
* @returns HTTP请求返回值
|
|
98
|
+
*/
|
|
99
|
+
postJson(name: string, params: BodyInit | null = null, ext?: IExtData): Promise<HttpReturn<any>> {
|
|
100
|
+
let headers: Map<string, string> = new Map();
|
|
101
|
+
headers.set(HeaderName, HeaderValueJson);
|
|
102
|
+
return this.request(name, params, HttpMethod.POST, HttpResponseType.Json, headers, ext);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Protobuf请求处理
|
|
107
|
+
* @param req 请求参数Protobuf数据对象名
|
|
108
|
+
* @param res 相应数据Protobuf数据对象名
|
|
109
|
+
* @param cmd 请求协议命令名
|
|
110
|
+
* @param params 请求参参数对象
|
|
111
|
+
* @returns HTTP请求返回值
|
|
112
|
+
*/
|
|
113
|
+
postProtobuf<T>(cmd: number, req: string, res: string, params?: any): Promise<HttpReturn<T>> {
|
|
114
|
+
return new Promise(async (resolve, reject) => {
|
|
115
|
+
let pc: any = proto;
|
|
116
|
+
let pb: BodyInit | null;
|
|
117
|
+
if (params) {
|
|
118
|
+
pb = pc[req].encode(params).finish();
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
pb = null;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
let headers: Map<string, string> = new Map();
|
|
125
|
+
headers.set(HeaderName, HeaderValuePb);
|
|
126
|
+
|
|
127
|
+
let r = await this.request<T>(cmd.toString(), pb, HttpMethod.POST, HttpResponseType.ArrayBuffer, headers);
|
|
128
|
+
if (r.isSucc) {
|
|
129
|
+
let u8a = new Uint8Array(r.res as any);
|
|
130
|
+
let decode = pc[res].decode(u8a);
|
|
131
|
+
r.res = decode as T;
|
|
132
|
+
}
|
|
133
|
+
resolve(r);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* 取消请求中的请求
|
|
139
|
+
* @param name 请求命令
|
|
140
|
+
* @param params 请求参数
|
|
141
|
+
*/
|
|
142
|
+
abort(name: string, params: any) {
|
|
143
|
+
let r = this.getRequestStr(name, params);
|
|
144
|
+
let key: string = r[1];
|
|
145
|
+
let data = urls.get(key);
|
|
146
|
+
if (data) {
|
|
147
|
+
data.xhr.abort();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* 请求处理
|
|
153
|
+
* @param name 请求命令
|
|
154
|
+
* @param params 请求参数
|
|
155
|
+
* @param method 请求方式
|
|
156
|
+
* @param type 响应数据类型
|
|
157
|
+
* @param headers 请求头信息
|
|
158
|
+
* @returns
|
|
159
|
+
*/
|
|
160
|
+
request<T>(name: string, params: any, method: HttpMethod, type: HttpResponseType, headers: Map<string, string>, ext?: IExtData): Promise<HttpReturn<T>> {
|
|
161
|
+
return new Promise((resolve, reject) => {
|
|
162
|
+
let r = this.getRequestStr(name, params);
|
|
163
|
+
let url: string = r[0];
|
|
164
|
+
let key: string = r[1];
|
|
165
|
+
let pss: string = r[2];
|
|
166
|
+
|
|
167
|
+
let hrd = urls.get(key);
|
|
168
|
+
if (hrd && hrd.pss == pss) {
|
|
169
|
+
console.warn(`地址【${key}】已正在请求中,不能重复请求`);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
let xhr = new XMLHttpRequest();
|
|
174
|
+
|
|
175
|
+
// 防重复请求功能
|
|
176
|
+
urls.set(key, { xhr, pss });
|
|
177
|
+
//console.warn(ext && ext.query ? key : url)
|
|
178
|
+
if (method == HttpMethod.POST)
|
|
179
|
+
xhr.open(HttpMethod.POST, ext && ext.query ? key : url);
|
|
180
|
+
else
|
|
181
|
+
xhr.open(HttpMethod.GET, key);
|
|
182
|
+
|
|
183
|
+
// 添加自定义请求头信息
|
|
184
|
+
for (const [key, value] of headers) xhr.setRequestHeader(key, value);
|
|
185
|
+
|
|
186
|
+
// 响应结果
|
|
187
|
+
let ret = new HttpReturn<T>();
|
|
188
|
+
|
|
189
|
+
// 请求超时
|
|
190
|
+
xhr.timeout = this.timeout;
|
|
191
|
+
xhr.ontimeout = () => {
|
|
192
|
+
urls.delete(key);
|
|
193
|
+
|
|
194
|
+
ret.isSucc = false;
|
|
195
|
+
ret.err = HttpEvent.ERROR_TIMEOUT; // 超时
|
|
196
|
+
resolve(ret);
|
|
197
|
+
}
|
|
198
|
+
xhr.onloadend = (ev: ProgressEvent) => {
|
|
199
|
+
if (xhr.status == 500) {
|
|
200
|
+
urls.delete(key);
|
|
201
|
+
|
|
202
|
+
ret.isSucc = false;
|
|
203
|
+
ret.err = HttpEvent.ERROR_NO_NETWORK; // 断网
|
|
204
|
+
resolve(ret);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
xhr.onerror = (ev: ProgressEvent) => {
|
|
208
|
+
urls.delete(key);
|
|
209
|
+
|
|
210
|
+
ret.isSucc = false;
|
|
211
|
+
if (xhr.readyState == 0 || xhr.readyState == 1 || xhr.status == 0) {
|
|
212
|
+
ret.err = HttpEvent.ERROR_NO_NETWORK; // 断网
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
ret.err = HttpEvent.ERROR_UNKNOWN; // 未知错误
|
|
216
|
+
}
|
|
217
|
+
resolve(ret);
|
|
218
|
+
};
|
|
219
|
+
xhr.onreadystatechange = (ev: Event) => {
|
|
220
|
+
if (xhr.readyState != 4) return;
|
|
221
|
+
|
|
222
|
+
urls.delete(key);
|
|
223
|
+
|
|
224
|
+
if (xhr.status == 200) {
|
|
225
|
+
switch (type) {
|
|
226
|
+
case HttpResponseType.Text:
|
|
227
|
+
ret.res = xhr.response;
|
|
228
|
+
break;
|
|
229
|
+
case HttpResponseType.Json:
|
|
230
|
+
ret.res = JSON.parse(xhr.response);
|
|
231
|
+
break;
|
|
232
|
+
case HttpResponseType.ArrayBuffer:
|
|
233
|
+
ret.res = xhr.response;
|
|
234
|
+
break;
|
|
235
|
+
case HttpResponseType.Blob:
|
|
236
|
+
ret.res = xhr.response;
|
|
237
|
+
break;
|
|
238
|
+
case HttpResponseType.FormData:
|
|
239
|
+
ret.res = xhr.response;
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
ret.isSucc = true;
|
|
244
|
+
resolve(ret);
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
// 发送请求
|
|
249
|
+
if (params == null || params == "") {
|
|
250
|
+
xhr.send();
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
xhr.send(pss);
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* 获取请求字符串
|
|
260
|
+
* @param name 请求命令
|
|
261
|
+
* @param params 请求参数
|
|
262
|
+
* @returns
|
|
263
|
+
*/
|
|
264
|
+
private getRequestStr(name: string, params: any): [string, string, string] {
|
|
265
|
+
let url = "";
|
|
266
|
+
let key = "";
|
|
267
|
+
let paramsStr: string = "";
|
|
268
|
+
if (name.toLocaleLowerCase().indexOf("http") == 0) {
|
|
269
|
+
url = name;
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
url = this.server + name;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
if (params) {
|
|
276
|
+
paramsStr = this.getParamString(params);
|
|
277
|
+
if (url.indexOf("?") > -1)
|
|
278
|
+
key = url + "&" + paramsStr;
|
|
279
|
+
else
|
|
280
|
+
key = url + "?" + paramsStr;
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
key = url;
|
|
284
|
+
}
|
|
285
|
+
return [url, key, paramsStr];
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* 获得字符串形式的参数
|
|
290
|
+
* @param params 参数对象
|
|
291
|
+
* @returns 参数字符串
|
|
292
|
+
*/
|
|
293
|
+
private getParamString(params: any) {
|
|
294
|
+
let result = "";
|
|
295
|
+
for (let name in params) {
|
|
296
|
+
let data = params[name];
|
|
297
|
+
if (data instanceof Object) {
|
|
298
|
+
for (let key in data)
|
|
299
|
+
result += `${key}=${data[key]}&`;
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
result += `${name}=${data}&`;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return result.substring(0, result.length - 1);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: dgflash
|
|
3
|
+
* @Date: 2022-09-01 18:00:28
|
|
4
|
+
* @LastEditors: dgflash
|
|
5
|
+
* @LastEditTime: 2022-09-09 18:31:18
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/*
|
|
9
|
+
* 网络相关接口定义
|
|
10
|
+
*/
|
|
11
|
+
export type NetData = (string | ArrayBufferLike | Blob | ArrayBufferView);
|
|
12
|
+
export type NetCallFunc = (data: any) => void;
|
|
13
|
+
|
|
14
|
+
/** 请求协议 */
|
|
15
|
+
export interface IRequestProtocol {
|
|
16
|
+
/** 请求唯一编号 */
|
|
17
|
+
id?: number,
|
|
18
|
+
/** 协议名 */
|
|
19
|
+
cmd: number,
|
|
20
|
+
/** 请求对象名 */
|
|
21
|
+
reqName?: string,
|
|
22
|
+
/** 接受对象名 */
|
|
23
|
+
respName?: string,
|
|
24
|
+
/** 消息内容 */
|
|
25
|
+
params?: any;
|
|
26
|
+
/** 请求二进制数据 */
|
|
27
|
+
buffer?: NetData,
|
|
28
|
+
/** 等待响应的回调对象 */
|
|
29
|
+
callback: CallbackObject,
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** 响应协议 */
|
|
33
|
+
export interface IResponseProtocol {
|
|
34
|
+
/** 请求唯一编号 */
|
|
35
|
+
id: number,
|
|
36
|
+
/** 响应协议命令码*/
|
|
37
|
+
cmd: number,
|
|
38
|
+
/** 响应协议错误码(0为请求成功,否则为对应的错误信息码) */
|
|
39
|
+
code: number,
|
|
40
|
+
/** 协议数据 */
|
|
41
|
+
data?: any
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** 回调对象 */
|
|
45
|
+
export interface CallbackObject {
|
|
46
|
+
/** 回调对象 */
|
|
47
|
+
target: any,
|
|
48
|
+
/** 回调函数 */
|
|
49
|
+
callback: NetCallFunc,
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** 协议辅助接口 */
|
|
53
|
+
export class IProtocolHelper {
|
|
54
|
+
protected _requestId: number = 0; // 请求唯一编号
|
|
55
|
+
|
|
56
|
+
/** 获取请求唯一编号 */
|
|
57
|
+
protected getRequestId() {
|
|
58
|
+
if (this._requestId == 30000)
|
|
59
|
+
this._requestId = 1;
|
|
60
|
+
this._requestId++;
|
|
61
|
+
return this._requestId;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** 处理请求包数据 */
|
|
65
|
+
encode(ireqp: IRequestProtocol): void { };
|
|
66
|
+
/** 解析通用响应数据 */
|
|
67
|
+
decodeCommon(msg: NetData): IResponseProtocol { return null! };
|
|
68
|
+
/** 解析自定义响应数据 */
|
|
69
|
+
decodeCustom(ireqp: IRequestProtocol, iresp: IResponseProtocol): void { };
|
|
70
|
+
/** 返回一个心跳包 */
|
|
71
|
+
onHearbeat(): void { };
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export type SocketFunc = (event: any) => void;
|
|
75
|
+
export type MessageFunc = (msg: NetData) => void;
|
|
76
|
+
|
|
77
|
+
/** Socket接口 */
|
|
78
|
+
export interface ISocket {
|
|
79
|
+
/** 连接回调 */
|
|
80
|
+
onConnected: SocketFunc | null;
|
|
81
|
+
/** 消息回调 */
|
|
82
|
+
onMessage: MessageFunc | null;
|
|
83
|
+
/** 错误回调 */
|
|
84
|
+
onError: SocketFunc | null;
|
|
85
|
+
/** 关闭回调 */
|
|
86
|
+
onClosed: SocketFunc | null;
|
|
87
|
+
/** 连接状态 */
|
|
88
|
+
connect(options: any): any;
|
|
89
|
+
/** 数据发送接口 */
|
|
90
|
+
send(buffer: NetData): number;
|
|
91
|
+
/** 关闭接口 */
|
|
92
|
+
close(code?: number, reason?: string): void;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** 网络提示接口 */
|
|
96
|
+
export interface INetworkTips {
|
|
97
|
+
/**
|
|
98
|
+
* 连接提示回调
|
|
99
|
+
* @param isShow false为准备触发连接,true为已连接
|
|
100
|
+
*/
|
|
101
|
+
connectTips(isShow: boolean): void;
|
|
102
|
+
/**
|
|
103
|
+
* 断开连接提示回调
|
|
104
|
+
* @param isShow false为准备触发断开连接,true为已断开连接
|
|
105
|
+
*/
|
|
106
|
+
disconnectTips(isShow: boolean): void;
|
|
107
|
+
/** 重连接开始提示回调 */
|
|
108
|
+
reconnectTips(): void;
|
|
109
|
+
/**
|
|
110
|
+
* 请求提示回调
|
|
111
|
+
* @param isShow false为所有请求结束,true为有请求等待返回
|
|
112
|
+
*/
|
|
113
|
+
requestTips(isShow: boolean): void;
|
|
114
|
+
}
|