cgserver 6.9.474 → 7.0.567
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/README.md +3 -0
- package/dist/lib/Config/{ServerConfig.js → IServerConfig.js} +3 -4
- package/dist/lib/Database/MSSqlManager.js +5 -5
- package/dist/lib/Database/MongoBaseService.js +2 -2
- package/dist/lib/Database/MongoManager.js +1 -1
- package/dist/lib/Database/MysqlBaseService.js +2 -2
- package/dist/lib/Database/MysqlManager.js +9 -9
- package/dist/lib/SocketServer/IClientWebSocket.js +20 -52
- package/dist/lib/SocketServer/IRpcClientWebSocket.js +1 -1
- package/dist/lib/SocketServer/IRpcServerWebSocket.js +1 -1
- package/dist/lib/SocketServer/IServerWebSocket.js +51 -21
- package/dist/lib/SocketServer/ISocketServer.js +43 -35
- package/dist/lib/SocketServer/IWebSocket.js +2 -2
- package/dist/lib/ThirdParty/AlipayTool.js +13 -13
- package/dist/lib/ThirdParty/Alisms.js +4 -4
- package/dist/lib/ThirdParty/AppleTool.js +3 -3
- package/dist/lib/ThirdParty/CgMq.js +2 -2
- package/dist/lib/ThirdParty/EmailTool.js +7 -7
- package/dist/lib/ThirdParty/OpenSocial.js +5 -5
- package/dist/lib/ThirdParty/QQTool.js +7 -7
- package/dist/lib/ThirdParty/QiniuTool.js +4 -4
- package/dist/lib/ThirdParty/WechatTool.js +4 -4
- package/dist/lib/WebServer/IWebServer.js +3 -3
- package/dist/lib/index.js +9 -9
- package/dist/types/Config/IServerConfig.d.ts +9 -0
- package/dist/types/Database/MongoBaseService.d.ts +1 -1
- package/dist/types/Database/MongoManager.d.ts +1 -1
- package/dist/types/SocketServer/IClientWebSocket.d.ts +9 -21
- package/dist/types/SocketServer/IRpcClientWebSocket.d.ts +1 -1
- package/dist/types/SocketServer/IRpcServerWebSocket.d.ts +1 -1
- package/dist/types/SocketServer/IServerWebSocket.d.ts +20 -9
- package/dist/types/SocketServer/ISocketServer.d.ts +22 -15
- package/dist/types/ThirdParty/CgMq.d.ts +2 -2
- package/dist/types/index.d.ts +3 -3
- package/package.json +3 -3
- package/dist/types/Config/ServerConfig.d.ts +0 -10
package/README.md
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.IServerConfig = exports.GServerCfg = void 0;
|
|
4
4
|
const FrameworkConfig_1 = require("./FrameworkConfig");
|
|
5
5
|
exports.GServerCfg = null;
|
|
6
|
-
class
|
|
6
|
+
class IServerConfig extends FrameworkConfig_1.FrameworkConfig {
|
|
7
7
|
port = -1;
|
|
8
8
|
_server_name = "";
|
|
9
|
-
webserver = null;
|
|
10
9
|
get serverName() {
|
|
11
10
|
return this._server_name;
|
|
12
11
|
}
|
|
@@ -24,4 +23,4 @@ class ServerConfig extends FrameworkConfig_1.FrameworkConfig {
|
|
|
24
23
|
return ret;
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
|
-
exports.
|
|
26
|
+
exports.IServerConfig = IServerConfig;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GMSSqlMgr = exports.MssqlReturn = void 0;
|
|
4
4
|
const mssql = require("mssql");
|
|
5
|
-
const
|
|
5
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
6
6
|
const DBCache_1 = require("./Decorator/DBCache");
|
|
7
7
|
class MssqlReturn {
|
|
8
8
|
error = null;
|
|
@@ -24,12 +24,12 @@ class MSSqlManager {
|
|
|
24
24
|
}
|
|
25
25
|
async init() {
|
|
26
26
|
if (this._pool
|
|
27
|
-
|| !
|
|
28
|
-
|| !
|
|
27
|
+
|| !IServerConfig_1.GServerCfg.db.mssql
|
|
28
|
+
|| !IServerConfig_1.GServerCfg.db.mssql.open) {
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
-
this._pool = await mssql.connect(
|
|
32
|
-
console.log("mssql config=" + JSON.stringify(
|
|
31
|
+
this._pool = await mssql.connect(IServerConfig_1.GServerCfg.db.mssql);
|
|
32
|
+
console.log("mssql config=" + JSON.stringify(IServerConfig_1.GServerCfg.db.mssql));
|
|
33
33
|
//这个的初始化位置不能变,必须位于cbs前,pool后
|
|
34
34
|
await DBCache_1.GDBCache.init();
|
|
35
35
|
for (let i = 0; i < this._init_cbs.length; ++i) {
|
|
@@ -31,8 +31,8 @@ class MongoBaseService {
|
|
|
31
31
|
let rs = await MongoManager_1.GMongoMgr.findOne(this._table, null, { id: id });
|
|
32
32
|
return rs.one;
|
|
33
33
|
}
|
|
34
|
-
async get(proterty, where
|
|
35
|
-
let rs = await MongoManager_1.GMongoMgr.findOne(this._table, proterty, where
|
|
34
|
+
async get(proterty, where) {
|
|
35
|
+
let rs = await MongoManager_1.GMongoMgr.findOne(this._table, proterty, where);
|
|
36
36
|
return rs.one;
|
|
37
37
|
}
|
|
38
38
|
async countDocuments(where, options) {
|
|
@@ -136,7 +136,7 @@ class MongoManager {
|
|
|
136
136
|
* 获取单条消息
|
|
137
137
|
* @param collection
|
|
138
138
|
*/
|
|
139
|
-
async findOne(collection, property = {}, where = {}
|
|
139
|
+
async findOne(collection, property = {}, where = {}) {
|
|
140
140
|
this._convertWhere(where);
|
|
141
141
|
let rs = { errcode: null, one: null };
|
|
142
142
|
if (!this._mongo) {
|
|
@@ -5,7 +5,7 @@ const Property_1 = require("./Decorator/Property");
|
|
|
5
5
|
const MysqlManager_1 = require("./MysqlManager");
|
|
6
6
|
const Log_1 = require("../Logic/Log");
|
|
7
7
|
const DBCache_1 = require("./Decorator/DBCache");
|
|
8
|
-
const
|
|
8
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
9
9
|
class BaseModel {
|
|
10
10
|
}
|
|
11
11
|
exports.BaseModel = BaseModel;
|
|
@@ -42,7 +42,7 @@ class MysqlBaseService {
|
|
|
42
42
|
throw new Error("数据表的类必须要具有Table装饰器");
|
|
43
43
|
}
|
|
44
44
|
this._table = "`" + table.table + "`";
|
|
45
|
-
if (!
|
|
45
|
+
if (!IServerConfig_1.GServerCfg.db.mysql.auto) {
|
|
46
46
|
//未开启自动创建数据表
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
@@ -47,22 +47,22 @@ class MysqlManager {
|
|
|
47
47
|
async init() {
|
|
48
48
|
return new Promise(async (resolve) => {
|
|
49
49
|
if (this._pool
|
|
50
|
-
|| !
|
|
51
|
-
|| !
|
|
50
|
+
|| !IServerConfig_1.GServerCfg.db.mysql
|
|
51
|
+
|| !IServerConfig_1.GServerCfg.db.mysql.open) {
|
|
52
52
|
resolve(null);
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
55
|
this._pool = mysql.createPool({
|
|
56
56
|
connectionLimit: 100,
|
|
57
|
-
host:
|
|
58
|
-
port:
|
|
59
|
-
user:
|
|
60
|
-
password:
|
|
61
|
-
database:
|
|
57
|
+
host: IServerConfig_1.GServerCfg.db.mysql.host,
|
|
58
|
+
port: IServerConfig_1.GServerCfg.db.mysql.port,
|
|
59
|
+
user: IServerConfig_1.GServerCfg.db.mysql.user,
|
|
60
|
+
password: IServerConfig_1.GServerCfg.db.mysql.password,
|
|
61
|
+
database: IServerConfig_1.GServerCfg.db.mysql.database,
|
|
62
62
|
supportBigNumbers: true,
|
|
63
63
|
charset: "utf8mb4"
|
|
64
64
|
});
|
|
65
|
-
console.log("mysql config=" + JSON.stringify(
|
|
65
|
+
console.log("mysql config=" + JSON.stringify(IServerConfig_1.GServerCfg.db.mysql));
|
|
66
66
|
//这个的初始化位置不能变,必须位于cbs前,pool后
|
|
67
67
|
await DBCache_1.GDBCache.init();
|
|
68
68
|
resolve(null);
|
|
@@ -177,4 +177,4 @@ class MysqlManager {
|
|
|
177
177
|
exports.GMysqlMgr = new MysqlManager();
|
|
178
178
|
//该import必须放在GMysqlMgr实例化之后,否则version基类找不到GMysqlMgr
|
|
179
179
|
const DBCache_1 = require("./Decorator/DBCache");
|
|
180
|
-
const
|
|
180
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
@@ -2,74 +2,42 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IClientWebSocket = void 0;
|
|
4
4
|
const IWebSocket_1 = require("./IWebSocket");
|
|
5
|
-
const ws = require("websocket");
|
|
6
5
|
const Log_1 = require("../Logic/Log");
|
|
7
6
|
const IProtoFilter_1 = require("./ProtoFilter/IProtoFilter");
|
|
8
7
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* 默认自动重连
|
|
8
|
+
* 服务器接收到的客户端的连接
|
|
9
|
+
* 客户端的session对象
|
|
12
10
|
*/
|
|
13
11
|
class IClientWebSocket extends IWebSocket_1.IWebSocket {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*/
|
|
18
|
-
get host() {
|
|
19
|
-
return this._host;
|
|
12
|
+
_server = null;
|
|
13
|
+
get server() {
|
|
14
|
+
return this._server;
|
|
20
15
|
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* 连接的服务器端口
|
|
24
|
-
*/
|
|
25
|
-
get port() {
|
|
26
|
-
return this._port;
|
|
27
|
-
}
|
|
28
|
-
_need_close = false;
|
|
29
|
-
constructor(protoType = IProtoFilter_1.EProtoType.Json, protoPath = "") {
|
|
16
|
+
constructor(server, protoType = IProtoFilter_1.EProtoType.Json, protoPath = "") {
|
|
30
17
|
super(protoType, protoPath);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this._host = domain || this._host;
|
|
34
|
-
this._port = port || this._port;
|
|
35
|
-
this._connect();
|
|
36
|
-
}
|
|
37
|
-
_connect() {
|
|
38
|
-
let url = "ws://" + this._host + ":" + this._port + "/";
|
|
39
|
-
Log_1.GLog.info("Trying to connect to server : " + url);
|
|
40
|
-
let _ws = new ws.client();
|
|
41
|
-
_ws.on("connect", super.onConnect.bind(this));
|
|
42
|
-
_ws.on("connectFailed", this.onClose.bind(this));
|
|
43
|
-
_ws.connect(url, null, null, { cookie: "client=" + this._tipKey });
|
|
44
|
-
}
|
|
45
|
-
onOpen(e) {
|
|
46
|
-
super.onOpen(e);
|
|
47
|
-
Log_1.GLog.info("success to connect to " + this._host + ":" + this._port);
|
|
18
|
+
this._server = server;
|
|
19
|
+
this._tipKey = this._server.name;
|
|
48
20
|
}
|
|
49
21
|
onClose(reasonCode, description) {
|
|
50
22
|
super.onClose(reasonCode, description);
|
|
51
|
-
|
|
52
|
-
setTimeout(() => {
|
|
53
|
-
if (!this._need_close) {
|
|
54
|
-
this.connect(this._host, this._port);
|
|
55
|
-
}
|
|
56
|
-
}, 1000);
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
23
|
+
this._server.removeServerWebSocketBySocketId(this._socket_id);
|
|
62
24
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
25
|
+
broadCast(data) {
|
|
26
|
+
if (!data) {
|
|
27
|
+
Log_1.GLog.info("Send Message warning:null data!");
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
Log_1.GLog.info("broadCast:----------------------------------");
|
|
31
|
+
Log_1.GLog.info(data);
|
|
32
|
+
let msg = this._protoFilter.encode(data);
|
|
33
|
+
this._server.broadCast(msg);
|
|
66
34
|
}
|
|
67
35
|
_onDecode(message, ...params) {
|
|
68
|
-
let msg = super._onDecode(message, "
|
|
36
|
+
let msg = super._onDecode(message, "msgReq");
|
|
69
37
|
return msg;
|
|
70
38
|
}
|
|
71
39
|
_onEncode(data, ...params) {
|
|
72
|
-
let msg = super._onEncode(data, "
|
|
40
|
+
let msg = super._onEncode(data, "msgRes");
|
|
73
41
|
return msg;
|
|
74
42
|
}
|
|
75
43
|
}
|
|
@@ -2,43 +2,73 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IServerWebSocket = void 0;
|
|
4
4
|
const IWebSocket_1 = require("./IWebSocket");
|
|
5
|
+
const ws = require("websocket");
|
|
5
6
|
const Log_1 = require("../Logic/Log");
|
|
6
7
|
const IProtoFilter_1 = require("./ProtoFilter/IProtoFilter");
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
9
|
+
* 连接到服务器的websocket
|
|
10
|
+
* 默认自动重连
|
|
10
11
|
*/
|
|
11
12
|
class IServerWebSocket extends IWebSocket_1.IWebSocket {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
_host = "";
|
|
14
|
+
/**
|
|
15
|
+
* 连接的服务器地址
|
|
16
|
+
*/
|
|
17
|
+
get host() {
|
|
18
|
+
return this._host;
|
|
15
19
|
}
|
|
16
|
-
|
|
20
|
+
_port = -1;
|
|
21
|
+
/**
|
|
22
|
+
* 连接的服务器端口
|
|
23
|
+
*/
|
|
24
|
+
get port() {
|
|
25
|
+
return this._port;
|
|
26
|
+
}
|
|
27
|
+
_need_close = false;
|
|
28
|
+
constructor(protoType = IProtoFilter_1.EProtoType.Json, protoPath = "") {
|
|
17
29
|
super(protoType, protoPath);
|
|
18
|
-
|
|
19
|
-
|
|
30
|
+
}
|
|
31
|
+
connect(domain, port) {
|
|
32
|
+
this._host = domain || this._host;
|
|
33
|
+
this._port = port || this._port;
|
|
34
|
+
this._connect();
|
|
35
|
+
}
|
|
36
|
+
_connect() {
|
|
37
|
+
let url = "ws://" + this._host + ":" + this._port + "/";
|
|
38
|
+
Log_1.GLog.info("Trying to connect to server : " + url);
|
|
39
|
+
let _ws = new ws.client();
|
|
40
|
+
_ws.on("connect", super.onConnect.bind(this));
|
|
41
|
+
_ws.on("connectFailed", this.onClose.bind(this));
|
|
42
|
+
_ws.connect(url, null, null, { cookie: "client=" + this._tipKey });
|
|
43
|
+
}
|
|
44
|
+
onOpen(e) {
|
|
45
|
+
super.onOpen(e);
|
|
46
|
+
Log_1.GLog.info("success to connect to " + this._host + ":" + this._port);
|
|
20
47
|
}
|
|
21
48
|
onClose(reasonCode, description) {
|
|
22
49
|
super.onClose(reasonCode, description);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return;
|
|
50
|
+
if (!this._need_close) {
|
|
51
|
+
setTimeout(() => {
|
|
52
|
+
if (!this._need_close) {
|
|
53
|
+
this.connect(this._host, this._port);
|
|
54
|
+
}
|
|
55
|
+
}, 1000);
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return false;
|
|
30
60
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
61
|
+
}
|
|
62
|
+
close() {
|
|
63
|
+
this._need_close = true;
|
|
64
|
+
super.close();
|
|
35
65
|
}
|
|
36
66
|
_onDecode(message, ...params) {
|
|
37
|
-
let msg = super._onDecode(message, "
|
|
67
|
+
let msg = super._onDecode(message, "msgRes");
|
|
38
68
|
return msg;
|
|
39
69
|
}
|
|
40
70
|
_onEncode(data, ...params) {
|
|
41
|
-
let msg = super._onEncode(data, "
|
|
71
|
+
let msg = super._onEncode(data, "msgReq");
|
|
42
72
|
return msg;
|
|
43
73
|
}
|
|
44
74
|
}
|
|
@@ -11,41 +11,31 @@ const https = require("https");
|
|
|
11
11
|
const MongoManager_1 = require("../Database/MongoManager");
|
|
12
12
|
const MSSqlManager_1 = require("../Database/MSSqlManager");
|
|
13
13
|
const EventTool_1 = require("../Logic/EventTool");
|
|
14
|
-
const
|
|
14
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
15
15
|
const cgserver_1 = require("../cgserver");
|
|
16
16
|
class ISocketServer {
|
|
17
|
+
_cfg = null;
|
|
18
|
+
//方便提示
|
|
19
|
+
get cfg() {
|
|
20
|
+
return this._cfg;
|
|
21
|
+
}
|
|
17
22
|
//服务器已被关闭
|
|
18
23
|
_is_closed = false;
|
|
19
24
|
get isClosed() {
|
|
20
25
|
return this._is_closed;
|
|
21
26
|
}
|
|
22
|
-
_code = -1; //服务器唯一编码
|
|
23
|
-
get code() {
|
|
24
|
-
return this._code;
|
|
25
|
-
}
|
|
26
|
-
set code(value) {
|
|
27
|
-
this._code = value;
|
|
28
|
-
}
|
|
29
|
-
_name = "";
|
|
30
27
|
get name() {
|
|
31
|
-
return this.
|
|
32
|
-
}
|
|
33
|
-
get fullServerName() {
|
|
34
|
-
return this._name + "@" + this._code;
|
|
28
|
+
return this._cfg.serverName;
|
|
35
29
|
}
|
|
36
30
|
//监听websocket
|
|
37
|
-
|
|
38
|
-
get
|
|
39
|
-
return this.
|
|
31
|
+
_listening_websocket = null;
|
|
32
|
+
get listeningWebSocket() {
|
|
33
|
+
return this._listening_websocket;
|
|
40
34
|
}
|
|
41
35
|
//来自于用户的链接
|
|
42
36
|
_ws_clients = {};
|
|
43
|
-
_listen_port = 0;
|
|
44
37
|
get listenPort() {
|
|
45
|
-
return this.
|
|
46
|
-
}
|
|
47
|
-
set listenPort(value) {
|
|
48
|
-
this._listen_port = value;
|
|
38
|
+
return this._cfg.port;
|
|
49
39
|
}
|
|
50
40
|
/**
|
|
51
41
|
* websocket can accepted protocol
|
|
@@ -62,8 +52,8 @@ class ISocketServer {
|
|
|
62
52
|
}
|
|
63
53
|
this._name_vs_class[name] = cls;
|
|
64
54
|
}
|
|
65
|
-
constructor(
|
|
66
|
-
this.
|
|
55
|
+
constructor(cfg) {
|
|
56
|
+
this._cfg = cfg;
|
|
67
57
|
}
|
|
68
58
|
removeServerWebSocketBySocketId(socketId) {
|
|
69
59
|
this._ws_clients[socketId] = null;
|
|
@@ -73,22 +63,20 @@ class ISocketServer {
|
|
|
73
63
|
cgserver_1.GCgServer.addSocketServer(this);
|
|
74
64
|
await MSSqlManager_1.GMSSqlMgr.init();
|
|
75
65
|
await MysqlManager_1.GMysqlMgr.init();
|
|
76
|
-
await RedisManager_1.GRedisMgr.init(
|
|
77
|
-
await MongoManager_1.GMongoMgr.init(
|
|
78
|
-
let code = await RedisManager_1.GRedisMgr.incr("server_code");
|
|
79
|
-
this._code = code;
|
|
66
|
+
await RedisManager_1.GRedisMgr.init(IServerConfig_1.GServerCfg.db?.redis);
|
|
67
|
+
await MongoManager_1.GMongoMgr.init(IServerConfig_1.GServerCfg.db?.mongo);
|
|
80
68
|
this.initWebSocket();
|
|
81
69
|
}
|
|
82
70
|
stop() {
|
|
83
71
|
this._is_closed = true;
|
|
84
|
-
this.
|
|
72
|
+
this._listening_websocket.closeAllConnections();
|
|
85
73
|
}
|
|
86
74
|
/*
|
|
87
75
|
把所有的客户端链接保存起来
|
|
88
76
|
方便统计,广播等
|
|
89
77
|
*/
|
|
90
|
-
addClient(
|
|
91
|
-
this._ws_clients[
|
|
78
|
+
addClient(ws_client) {
|
|
79
|
+
this._ws_clients[ws_client.socketId] = ws_client;
|
|
92
80
|
}
|
|
93
81
|
isOriginAllowed(origin) {
|
|
94
82
|
return true;
|
|
@@ -115,8 +103,8 @@ class ISocketServer {
|
|
|
115
103
|
response.end();
|
|
116
104
|
});
|
|
117
105
|
}
|
|
118
|
-
server.listen(this.
|
|
119
|
-
this.
|
|
106
|
+
server.listen(this._cfg.port, this.onListenning.bind(this));
|
|
107
|
+
this._listening_websocket = new ws.server({
|
|
120
108
|
httpServer: server,
|
|
121
109
|
// You should not use autoAcceptConnections for production
|
|
122
110
|
// applications, as it defeats all standard cross-origin protection
|
|
@@ -125,14 +113,14 @@ class ISocketServer {
|
|
|
125
113
|
// to accept it.
|
|
126
114
|
autoAcceptConnections: false
|
|
127
115
|
});
|
|
128
|
-
this.
|
|
129
|
-
this.
|
|
116
|
+
this._listening_websocket.on('request', this.onRequest.bind(this));
|
|
117
|
+
this._listening_websocket.on('close', this.onClose.bind(this));
|
|
130
118
|
}
|
|
131
119
|
onClose(connection, reason, desc) {
|
|
132
120
|
}
|
|
133
121
|
onListenning() {
|
|
134
122
|
EventTool_1.GEventTool.emit("socket_server_init_done");
|
|
135
|
-
let info = (new Date()) + " Server " + this.
|
|
123
|
+
let info = (new Date()) + " Server " + this.name + " is listening on port " + this._cfg.port;
|
|
136
124
|
Log_1.GLog.info(info);
|
|
137
125
|
console.log(info);
|
|
138
126
|
}
|
|
@@ -190,5 +178,25 @@ class ISocketServer {
|
|
|
190
178
|
}
|
|
191
179
|
return server_name;
|
|
192
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* 广播消息
|
|
183
|
+
* @param msg
|
|
184
|
+
*/
|
|
185
|
+
broadCast(msg) {
|
|
186
|
+
for (var key in this._ws_clients) {
|
|
187
|
+
let ws = this._ws_clients[key];
|
|
188
|
+
ws.send(msg);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* 获取任意客户端连接
|
|
193
|
+
* @returns
|
|
194
|
+
*/
|
|
195
|
+
getAnyWebSocket() {
|
|
196
|
+
for (var key in this._ws_clients) {
|
|
197
|
+
return this._ws_clients[key];
|
|
198
|
+
}
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
193
201
|
}
|
|
194
202
|
exports.ISocketServer = ISocketServer;
|
|
@@ -6,7 +6,7 @@ const ProtoFactory_1 = require("./ProtoFilter/ProtoFactory");
|
|
|
6
6
|
const IProtoFilter_1 = require("./ProtoFilter/IProtoFilter");
|
|
7
7
|
const Core_1 = require("../Core/Core");
|
|
8
8
|
const _ = require("underscore");
|
|
9
|
-
const
|
|
9
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
10
10
|
const SyncQueueTool_1 = require("../Logic/SyncQueueTool");
|
|
11
11
|
class BaseMsg {
|
|
12
12
|
cmd;
|
|
@@ -62,7 +62,7 @@ class IWebSocket {
|
|
|
62
62
|
return false;
|
|
63
63
|
}
|
|
64
64
|
constructor(protoType = IProtoFilter_1.EProtoType.Json, protoPath = "") {
|
|
65
|
-
this._debug_msg =
|
|
65
|
+
this._debug_msg = IServerConfig_1.GServerCfg.debug_msg;
|
|
66
66
|
this._socket_id = parseInt(_.uniqueId());
|
|
67
67
|
this._protoType = protoType;
|
|
68
68
|
this._protoPath = protoPath;
|
|
@@ -7,7 +7,7 @@ const AliPayUtil_1 = require("alipay_sdk2/AliPayUtil");
|
|
|
7
7
|
const fs = require("fs");
|
|
8
8
|
const form_1 = require("alipay-sdk/lib/form");
|
|
9
9
|
const Log_1 = require("../Logic/Log");
|
|
10
|
-
const
|
|
10
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
11
11
|
class AlipayResult {
|
|
12
12
|
alipay_trade_app_pay_response = {
|
|
13
13
|
code: "10000",
|
|
@@ -71,26 +71,26 @@ class AlipayTool {
|
|
|
71
71
|
notify_url: ""
|
|
72
72
|
};
|
|
73
73
|
init() {
|
|
74
|
-
if (!
|
|
75
|
-
|| !
|
|
74
|
+
if (!IServerConfig_1.GServerCfg.third_cfg.alipay
|
|
75
|
+
|| !IServerConfig_1.GServerCfg.third_cfg.alipay.open) {
|
|
76
76
|
return false;
|
|
77
77
|
}
|
|
78
78
|
let suffix = "";
|
|
79
|
-
if (
|
|
79
|
+
if (IServerConfig_1.GServerCfg.third_cfg.alipay.dev) {
|
|
80
80
|
suffix = "_dev";
|
|
81
81
|
}
|
|
82
82
|
this._cfg = {
|
|
83
|
-
app_id:
|
|
84
|
-
app_key:
|
|
85
|
-
gateway:
|
|
83
|
+
app_id: IServerConfig_1.GServerCfg.third_cfg.alipay["app_id" + suffix],
|
|
84
|
+
app_key: IServerConfig_1.GServerCfg.third_cfg.alipay["app_key" + suffix],
|
|
85
|
+
gateway: IServerConfig_1.GServerCfg.third_cfg.alipay["gateway" + suffix],
|
|
86
86
|
//RSA1 RSA2
|
|
87
|
-
signType:
|
|
87
|
+
signType: IServerConfig_1.GServerCfg.third_cfg.alipay["signType" + suffix],
|
|
88
88
|
/** 指定private key类型, 默认: PKCS1, PKCS8: PRIVATE KEY, PKCS1: RSA PRIVATE KEY */
|
|
89
|
-
keyType:
|
|
90
|
-
alipay_root_cert_sn:
|
|
91
|
-
alipay_cert_sn:
|
|
92
|
-
app_cert_sn:
|
|
93
|
-
notify_url:
|
|
89
|
+
keyType: IServerConfig_1.GServerCfg.third_cfg.alipay["signType" + suffix],
|
|
90
|
+
alipay_root_cert_sn: IServerConfig_1.GServerCfg.third_cfg.alipay["alipay_root_cert_sn" + suffix],
|
|
91
|
+
alipay_cert_sn: IServerConfig_1.GServerCfg.third_cfg.alipay["alipay_cert_sn" + suffix],
|
|
92
|
+
app_cert_sn: IServerConfig_1.GServerCfg.third_cfg.alipay["app_cert_sn" + suffix],
|
|
93
|
+
notify_url: IServerConfig_1.GServerCfg.third_cfg.alipay["notify_url" + suffix]
|
|
94
94
|
};
|
|
95
95
|
if (this._cfg.alipay_cert_sn) {
|
|
96
96
|
this._aliPay = new AliPayUtil_1.AliPayUtil(this._cfg.alipay_cert_sn, this._cfg.app_key);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GSmsTool = void 0;
|
|
4
|
-
const
|
|
4
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
5
5
|
const Log_1 = require("./../Logic/Log");
|
|
6
6
|
let SMSClient = require("@alicloud/sms-sdk");
|
|
7
7
|
exports.GSmsTool = null;
|
|
@@ -13,7 +13,7 @@ class SMSTool {
|
|
|
13
13
|
return true;
|
|
14
14
|
}
|
|
15
15
|
this._is_init = true;
|
|
16
|
-
this._sms_client = new SMSClient({ accessKeyId:
|
|
16
|
+
this._sms_client = new SMSClient({ accessKeyId: IServerConfig_1.GServerCfg.third_cfg.aliSms.accessKeyId, secretAccessKey: IServerConfig_1.GServerCfg.third_cfg.aliSms.secretAccessKey });
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* 发送短信验证码
|
|
@@ -25,8 +25,8 @@ class SMSTool {
|
|
|
25
25
|
return new Promise((resolve, reject) => {
|
|
26
26
|
this._sms_client.sendSMS({
|
|
27
27
|
PhoneNumbers: phone,
|
|
28
|
-
SignName:
|
|
29
|
-
TemplateCode:
|
|
28
|
+
SignName: IServerConfig_1.GServerCfg.third_cfg.aliSms.signName,
|
|
29
|
+
TemplateCode: IServerConfig_1.GServerCfg.third_cfg.aliSms.templateCode,
|
|
30
30
|
TemplateParam: JSON.stringify({ code: code })
|
|
31
31
|
}).then((res) => {
|
|
32
32
|
if (res.Code == "OK") {
|
|
@@ -6,7 +6,7 @@ const HttpTool_1 = require("./../Logic/HttpTool");
|
|
|
6
6
|
const ec_key_1 = require("ec-key");
|
|
7
7
|
const uuid_1 = require("uuid");
|
|
8
8
|
const fs = require("fs");
|
|
9
|
-
const
|
|
9
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
10
10
|
//developer.apple.com/documentation/appstorereceipts/responsebody
|
|
11
11
|
class ReceiptInfo {
|
|
12
12
|
cancellation_date = "";
|
|
@@ -187,7 +187,7 @@ class AppleTool {
|
|
|
187
187
|
}
|
|
188
188
|
signature(nickname, create_time, appBundleID, productIdentifier, offerIdentifier) {
|
|
189
189
|
let keyIdentifier = "";
|
|
190
|
-
for (var k in
|
|
190
|
+
for (var k in IServerConfig_1.GServerCfg.third_cfg.apple.keyIds) {
|
|
191
191
|
keyIdentifier = k;
|
|
192
192
|
break;
|
|
193
193
|
}
|
|
@@ -200,7 +200,7 @@ class AppleTool {
|
|
|
200
200
|
nonce.toLowerCase() + '\u2063' +
|
|
201
201
|
create_time;
|
|
202
202
|
// Get the PEM-formatted private key string associated with the Key ID.
|
|
203
|
-
const path =
|
|
203
|
+
const path = IServerConfig_1.GServerCfg.third_cfg.apple.keyIds[keyIdentifier];
|
|
204
204
|
const keyString = fs.readFileSync(path).toString();
|
|
205
205
|
// Create an Elliptic Curve Digital Signature Algorithm (ECDSA) object using the private key.
|
|
206
206
|
const key = new ec_key_1.default(keyString, 'pem');
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CgMq = exports.CgMqConfig = exports.CgMqRetMsg = void 0;
|
|
4
4
|
const Core_1 = require("../Core/Core");
|
|
5
5
|
const Log_1 = require("../Logic/Log");
|
|
6
|
-
const
|
|
6
|
+
const IRpcServerWebSocket_1 = require("../SocketServer/IRpcServerWebSocket");
|
|
7
7
|
const IRpc_1 = require("../SocketServer/IRpc");
|
|
8
8
|
//接受到的消息无需basemsg部分
|
|
9
9
|
class CgMqMsg extends IRpc_1.RpcBaseMsg {
|
|
@@ -27,7 +27,7 @@ class CgMqRetMsg extends CgMqMsg {
|
|
|
27
27
|
count = 0;
|
|
28
28
|
}
|
|
29
29
|
exports.CgMqRetMsg = CgMqRetMsg;
|
|
30
|
-
class CgMqServerWebsocket extends
|
|
30
|
+
class CgMqServerWebsocket extends IRpcServerWebSocket_1.IRpcServerWebSocket {
|
|
31
31
|
_cgmq = null;
|
|
32
32
|
/**
|
|
33
33
|
* 自己的身份
|
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GEmailTool = void 0;
|
|
4
4
|
const nodeMailer = require("nodemailer");
|
|
5
|
-
const
|
|
5
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
6
6
|
const Log_1 = require("../Logic/Log");
|
|
7
7
|
exports.GEmailTool = null;
|
|
8
8
|
class EmailTool {
|
|
9
9
|
send(to, subject, html) {
|
|
10
10
|
return new Promise((resolve, reject) => {
|
|
11
11
|
let transport = nodeMailer.createTransport({
|
|
12
|
-
host:
|
|
13
|
-
port:
|
|
14
|
-
secure:
|
|
12
|
+
host: IServerConfig_1.GServerCfg.third_cfg.email.host,
|
|
13
|
+
port: IServerConfig_1.GServerCfg.third_cfg.email.port,
|
|
14
|
+
secure: IServerConfig_1.GServerCfg.third_cfg.email.secure,
|
|
15
15
|
auth: {
|
|
16
|
-
user:
|
|
17
|
-
pass:
|
|
16
|
+
user: IServerConfig_1.GServerCfg.third_cfg.email.auth.user,
|
|
17
|
+
pass: IServerConfig_1.GServerCfg.third_cfg.email.auth.pass
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
let mail = {
|
|
21
|
-
from:
|
|
21
|
+
from: IServerConfig_1.GServerCfg.third_cfg.email.from,
|
|
22
22
|
to: to,
|
|
23
23
|
subject: subject,
|
|
24
24
|
html: html
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GOpenSocial = void 0;
|
|
4
|
-
const
|
|
4
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
5
5
|
const HttpTool_1 = require("../Logic/HttpTool");
|
|
6
6
|
exports.GOpenSocial = null;
|
|
7
7
|
class OpenSocial {
|
|
8
8
|
_getNewMsg() {
|
|
9
9
|
return {
|
|
10
|
-
app_id:
|
|
11
|
-
app_secret:
|
|
10
|
+
app_id: IServerConfig_1.GServerCfg.third_cfg.open_social.app_id,
|
|
11
|
+
app_secret: IServerConfig_1.GServerCfg.third_cfg.open_social.app_secret
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
async getUser(unionid, openid) {
|
|
@@ -16,7 +16,7 @@ class OpenSocial {
|
|
|
16
16
|
unionid: unionid,
|
|
17
17
|
openid: openid
|
|
18
18
|
};
|
|
19
|
-
let rs = await HttpTool_1.GHttpTool.httpPost(
|
|
19
|
+
let rs = await HttpTool_1.GHttpTool.httpPost(IServerConfig_1.GServerCfg.third_cfg.open_social.user_url, msg);
|
|
20
20
|
return rs.body;
|
|
21
21
|
}
|
|
22
22
|
async updatePwd(unionid, openid, new_pwd) {
|
|
@@ -25,7 +25,7 @@ class OpenSocial {
|
|
|
25
25
|
openid: openid,
|
|
26
26
|
password: new_pwd
|
|
27
27
|
};
|
|
28
|
-
let jsonData = await HttpTool_1.GHttpTool.httpPost(
|
|
28
|
+
let jsonData = await HttpTool_1.GHttpTool.httpPost(IServerConfig_1.GServerCfg.third_cfg.open_social.update_pwd_url, msg);
|
|
29
29
|
return jsonData.body || jsonData.error;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.QQTool = exports.GQQTool = exports.QQUserInfo = void 0;
|
|
4
4
|
const _ = require("underscore");
|
|
5
5
|
const URLEncode = require("urlencode");
|
|
6
|
-
const
|
|
6
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
7
7
|
const HttpTool_1 = require("../Logic/HttpTool");
|
|
8
8
|
const Log_1 = require("../Logic/Log");
|
|
9
9
|
class QQUserInfo {
|
|
@@ -45,9 +45,9 @@ class QQTool {
|
|
|
45
45
|
*/
|
|
46
46
|
getAuthCodeUrl(scope, display) {
|
|
47
47
|
//必须 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心
|
|
48
|
-
let redirect_uri = URLEncode.encode(
|
|
48
|
+
let redirect_uri = URLEncode.encode(IServerConfig_1.GServerCfg.third_cfg.qq.redirect_uri);
|
|
49
49
|
//必须 申请QQ登录成功后,分配给应用的appid。
|
|
50
|
-
let client_id =
|
|
50
|
+
let client_id = IServerConfig_1.GServerCfg.third_cfg.qq.app_id;
|
|
51
51
|
//必须 授权类型,此值固定为“code”。
|
|
52
52
|
let response_type = "code";
|
|
53
53
|
//必须 client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
|
|
@@ -69,11 +69,11 @@ class QQTool {
|
|
|
69
69
|
//必须 授权类型,在本步骤中,此值为“authorization_code”。
|
|
70
70
|
let grant_type = "authorization_code";
|
|
71
71
|
//必须 申请QQ登录成功后,分配给应用的appid。
|
|
72
|
-
let client_id =
|
|
72
|
+
let client_id = IServerConfig_1.GServerCfg.third_cfg.qq.app_id;
|
|
73
73
|
//必须 申请QQ登录成功后,分配给网站的appkey。
|
|
74
|
-
let client_secret =
|
|
74
|
+
let client_secret = IServerConfig_1.GServerCfg.third_cfg.qq.app_key;
|
|
75
75
|
//必须 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心
|
|
76
|
-
let redirect_uri = URLEncode.encode(
|
|
76
|
+
let redirect_uri = URLEncode.encode(IServerConfig_1.GServerCfg.third_cfg.qq.redirect_uri);
|
|
77
77
|
let url = "https://graph.qq.com/oauth2.0/token?code=" + auth_code + "&grant_type=" + grant_type + "&client_id=" + client_id + "&client_secret=" + client_secret + "&redirect_uri=" + redirect_uri;
|
|
78
78
|
let rs = await HttpTool_1.GHttpTool.httpRequest(url);
|
|
79
79
|
if (rs.body && rs.body.access_token) {
|
|
@@ -103,7 +103,7 @@ class QQTool {
|
|
|
103
103
|
return null;
|
|
104
104
|
}
|
|
105
105
|
async getUserInfo(access_token, openid) {
|
|
106
|
-
let url = "https://graph.qq.com/user/get_user_info?access_token=" + access_token + "&oauth_consumer_key=" +
|
|
106
|
+
let url = "https://graph.qq.com/user/get_user_info?access_token=" + access_token + "&oauth_consumer_key=" + IServerConfig_1.GServerCfg.third_cfg.qq.app_id + "&openid=" + openid;
|
|
107
107
|
let rs = await HttpTool_1.GHttpTool.httpRequest(url);
|
|
108
108
|
if (rs.body) {
|
|
109
109
|
return rs.body;
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GQiniuTool = void 0;
|
|
4
4
|
const qiniu = require("qiniu");
|
|
5
|
-
const
|
|
5
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
6
6
|
exports.GQiniuTool = null;
|
|
7
7
|
class QiniuTool {
|
|
8
8
|
get host() {
|
|
9
|
-
return
|
|
9
|
+
return IServerConfig_1.GServerCfg.third_cfg.qiniu.host;
|
|
10
10
|
}
|
|
11
11
|
getUploadToken(filename) {
|
|
12
|
-
let mac = new qiniu.auth.digest.Mac(
|
|
12
|
+
let mac = new qiniu.auth.digest.Mac(IServerConfig_1.GServerCfg.third_cfg.qiniu.accessKey, IServerConfig_1.GServerCfg.third_cfg.qiniu.secretKey);
|
|
13
13
|
let options = {
|
|
14
|
-
scope:
|
|
14
|
+
scope: IServerConfig_1.GServerCfg.third_cfg.qiniu.bucket + ":" + filename,
|
|
15
15
|
};
|
|
16
16
|
let putPolicy = new qiniu.rs.PutPolicy(options);
|
|
17
17
|
let uploadToken = putPolicy.uploadToken(mac);
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.WechatTool = exports.GWechatTool = exports.WechatUserInfo = void 0;
|
|
4
4
|
const _ = require("underscore");
|
|
5
5
|
const URLEncode = require("urlencode");
|
|
6
|
-
const
|
|
6
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
7
7
|
const HttpTool_1 = require("../Logic/HttpTool");
|
|
8
8
|
const Log_1 = require("../Logic/Log");
|
|
9
9
|
class WechatUserInfo {
|
|
@@ -28,8 +28,8 @@ class WechatTool {
|
|
|
28
28
|
*/
|
|
29
29
|
getAuthCodeUrl() {
|
|
30
30
|
let appid = "wx80f0f10fe1304e9d";
|
|
31
|
-
let url = "https://open.weixin.qq.com/connect/qrconnect?appid=" +
|
|
32
|
-
url += "&redirect_uri=" + URLEncode.encode(
|
|
31
|
+
let url = "https://open.weixin.qq.com/connect/qrconnect?appid=" + IServerConfig_1.GServerCfg.third_cfg.wechat.app_id;
|
|
32
|
+
url += "&redirect_uri=" + URLEncode.encode(IServerConfig_1.GServerCfg.third_cfg.wechat.redirect_uri);
|
|
33
33
|
url += "&response_type=code&scope=snsapi_login";
|
|
34
34
|
//必须 client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
|
|
35
35
|
let state = _.random(1000000, 9999999);
|
|
@@ -40,7 +40,7 @@ class WechatTool {
|
|
|
40
40
|
if (!auth_code) {
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
|
-
let url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" +
|
|
43
|
+
let url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + IServerConfig_1.GServerCfg.third_cfg.wechat.app_id + "&secret=" + IServerConfig_1.GServerCfg.third_cfg.wechat.app_key + "&code=" + auth_code + "&grant_type=authorization_code";
|
|
44
44
|
let rs = await HttpTool_1.GHttpTool.httpRequest(url);
|
|
45
45
|
/*
|
|
46
46
|
{
|
|
@@ -8,7 +8,7 @@ const MysqlManager_1 = require("../Database/MysqlManager");
|
|
|
8
8
|
const RazorJs_1 = require("./Engine/RazorJs");
|
|
9
9
|
const MongoManager_1 = require("../Database/MongoManager");
|
|
10
10
|
const AlipayTool_1 = require("../ThirdParty/AlipayTool");
|
|
11
|
-
const
|
|
11
|
+
const IServerConfig_1 = require("../Config/IServerConfig");
|
|
12
12
|
const EventTool_1 = require("../Logic/EventTool");
|
|
13
13
|
const cgserver_1 = require("../cgserver");
|
|
14
14
|
//实现对controller的手动注册
|
|
@@ -24,9 +24,9 @@ class IWebServer {
|
|
|
24
24
|
Log_1.GLog.error("webserver 配置不存在,启动服务器失败");
|
|
25
25
|
return false;
|
|
26
26
|
}
|
|
27
|
-
await RedisManager_1.GRedisMgr.init(
|
|
27
|
+
await RedisManager_1.GRedisMgr.init(IServerConfig_1.GServerCfg.db?.redis);
|
|
28
28
|
await MysqlManager_1.GMysqlMgr.init();
|
|
29
|
-
await MongoManager_1.GMongoMgr.init(
|
|
29
|
+
await MongoManager_1.GMongoMgr.init(IServerConfig_1.GServerCfg.db?.mongo);
|
|
30
30
|
AlipayTool_1.GAlipayTool.init();
|
|
31
31
|
//初始化web引擎
|
|
32
32
|
this._engine = new Engine_1.Engine(cfg, new RazorJs_1.RazorJs());
|
package/dist/lib/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GoogleProtoFilter = exports.MongoCacheModel = exports.GMongoCacheSer = exports.MongoUserModel = exports.MysqlUserModel = exports.MongoUserService = exports.MysqlUserService = exports.GMongoAccountSer = exports.MongoAccountService = exports.GMysqlAccountSer = exports.MysqlAccountService = exports.EAccountFrom = exports.EUserState = exports.ERoleGroup = exports.GLog = exports.GHttpTool = exports.GCacheTool = exports.RedisManager = exports.GRedisMgr = exports.GMysqlMgr = exports.MysqlBaseService = exports.GMSSqlMgr = exports.GMongoMgr = exports.MongoBaseModel = exports.MysqlBaseModel = exports.MongoBaseService = exports.EPropertyType = exports.Type = exports.Table = exports.Property = exports.PrimaryKey = exports.NotNull = exports.AutoIncrement = exports.Timer = exports.core = exports.GServerCfg = exports.
|
|
4
|
-
exports.
|
|
3
|
+
exports.GoogleProtoFilter = exports.MongoCacheModel = exports.GMongoCacheSer = exports.MongoUserModel = exports.MysqlUserModel = exports.MongoUserService = exports.MysqlUserService = exports.GMongoAccountSer = exports.MongoAccountService = exports.GMysqlAccountSer = exports.MysqlAccountService = exports.EAccountFrom = exports.EUserState = exports.ERoleGroup = exports.GLog = exports.GHttpTool = exports.GCacheTool = exports.RedisManager = exports.GRedisMgr = exports.GMysqlMgr = exports.MysqlBaseService = exports.GMSSqlMgr = exports.GMongoMgr = exports.MongoBaseModel = exports.MysqlBaseModel = exports.MongoBaseService = exports.EPropertyType = exports.Type = exports.Table = exports.Property = exports.PrimaryKey = exports.NotNull = exports.AutoIncrement = exports.Timer = exports.core = exports.GServerCfg = exports.IServerConfig = exports.FrameworkConfig = exports.Config = exports.FrameworkErrorCode = exports.GTriggerMgr = exports.Trigger = exports.Point = exports.Entity = exports.BehaviorAI = exports.AStar = exports.AiObject = exports.GDBCache = exports.GProtoFactory = exports.GCgServer = void 0;
|
|
4
|
+
exports.IRpcClientWebSocket = exports.IRpcServerWebSocket = exports.CgMqConfig = exports.CgMq = exports.RpcConfig = exports.Rpc = exports.RpcBaseMsg = exports.EAccountState = exports.GEventTool = exports.GSyncQueueTool = exports.WebServerConfig = exports.Response = exports.Request = exports.RazorJs = exports.Engine = exports.GCtrMgr = exports.JsonCreatorValidate = exports.JsonAuthorityValidate = exports.JsonAdminValidate = exports.CreatorValidate = exports.AuthorityValidate = exports.AdminValidate = exports.MongoAccountModel = exports.MysqlAccountModel = exports.MongoBaseUserController = exports.BaseUserController = exports.BaseController = exports.IWebServer = exports.GWechatTool = exports.GWechatOATool = exports.GQQTool = exports.GQiniuTool = exports.GOpenSocial = exports.GEmailTool = exports.GAppleTool = exports.GSmsTool = exports.GAlipayTool = exports.BaseMsg = exports.IWebSocket = exports.ISocketServer = exports.IClientWebSocket = exports.IServerWebSocket = exports.JsonProtoFilter = void 0;
|
|
5
5
|
var cgserver_1 = require("./cgserver");
|
|
6
6
|
Object.defineProperty(exports, "GCgServer", { enumerable: true, get: function () { return cgserver_1.GCgServer; } });
|
|
7
7
|
var ProtoFactory_1 = require("./SocketServer/ProtoFilter/ProtoFactory");
|
|
@@ -27,9 +27,9 @@ var Config_1 = require("./Config/Config");
|
|
|
27
27
|
Object.defineProperty(exports, "Config", { enumerable: true, get: function () { return Config_1.Config; } });
|
|
28
28
|
var FrameworkConfig_1 = require("./Config/FrameworkConfig");
|
|
29
29
|
Object.defineProperty(exports, "FrameworkConfig", { enumerable: true, get: function () { return FrameworkConfig_1.FrameworkConfig; } });
|
|
30
|
-
var
|
|
31
|
-
Object.defineProperty(exports, "
|
|
32
|
-
Object.defineProperty(exports, "GServerCfg", { enumerable: true, get: function () { return
|
|
30
|
+
var IServerConfig_1 = require("./Config/IServerConfig");
|
|
31
|
+
Object.defineProperty(exports, "IServerConfig", { enumerable: true, get: function () { return IServerConfig_1.IServerConfig; } });
|
|
32
|
+
Object.defineProperty(exports, "GServerCfg", { enumerable: true, get: function () { return IServerConfig_1.GServerCfg; } });
|
|
33
33
|
var Core_1 = require("./Core/Core");
|
|
34
34
|
Object.defineProperty(exports, "core", { enumerable: true, get: function () { return Core_1.core; } });
|
|
35
35
|
var Timer_1 = require("./Core/Timer");
|
|
@@ -96,10 +96,10 @@ var GoogleProtoFilter_1 = require("./SocketServer/ProtoFilter/GoogleProtoFilter"
|
|
|
96
96
|
Object.defineProperty(exports, "GoogleProtoFilter", { enumerable: true, get: function () { return GoogleProtoFilter_1.GoogleProtoFilter; } });
|
|
97
97
|
var JsonProtoFilter_1 = require("./SocketServer/ProtoFilter/JsonProtoFilter");
|
|
98
98
|
Object.defineProperty(exports, "JsonProtoFilter", { enumerable: true, get: function () { return JsonProtoFilter_1.JsonProtoFilter; } });
|
|
99
|
-
var IClientWebSocket_1 = require("./SocketServer/IClientWebSocket");
|
|
100
|
-
Object.defineProperty(exports, "IClientWebSocket", { enumerable: true, get: function () { return IClientWebSocket_1.IClientWebSocket; } });
|
|
101
99
|
var IServerWebSocket_1 = require("./SocketServer/IServerWebSocket");
|
|
102
100
|
Object.defineProperty(exports, "IServerWebSocket", { enumerable: true, get: function () { return IServerWebSocket_1.IServerWebSocket; } });
|
|
101
|
+
var IClientWebSocket_1 = require("./SocketServer/IClientWebSocket");
|
|
102
|
+
Object.defineProperty(exports, "IClientWebSocket", { enumerable: true, get: function () { return IClientWebSocket_1.IClientWebSocket; } });
|
|
103
103
|
var ISocketServer_1 = require("./SocketServer/ISocketServer");
|
|
104
104
|
Object.defineProperty(exports, "ISocketServer", { enumerable: true, get: function () { return ISocketServer_1.ISocketServer; } });
|
|
105
105
|
var IWebSocket_1 = require("./SocketServer/IWebSocket");
|
|
@@ -173,7 +173,7 @@ Object.defineProperty(exports, "RpcConfig", { enumerable: true, get: function ()
|
|
|
173
173
|
var CgMq_1 = require("./ThirdParty/CgMq");
|
|
174
174
|
Object.defineProperty(exports, "CgMq", { enumerable: true, get: function () { return CgMq_1.CgMq; } });
|
|
175
175
|
Object.defineProperty(exports, "CgMqConfig", { enumerable: true, get: function () { return CgMq_1.CgMqConfig; } });
|
|
176
|
-
var IRpcClientWebSocket_1 = require("./SocketServer/IRpcClientWebSocket");
|
|
177
|
-
Object.defineProperty(exports, "IRpcClientWebSocket", { enumerable: true, get: function () { return IRpcClientWebSocket_1.IRpcClientWebSocket; } });
|
|
178
176
|
var IRpcServerWebSocket_1 = require("./SocketServer/IRpcServerWebSocket");
|
|
179
177
|
Object.defineProperty(exports, "IRpcServerWebSocket", { enumerable: true, get: function () { return IRpcServerWebSocket_1.IRpcServerWebSocket; } });
|
|
178
|
+
var IRpcClientWebSocket_1 = require("./SocketServer/IRpcClientWebSocket");
|
|
179
|
+
Object.defineProperty(exports, "IRpcClientWebSocket", { enumerable: true, get: function () { return IRpcClientWebSocket_1.IRpcClientWebSocket; } });
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FrameworkConfig } from './FrameworkConfig';
|
|
2
|
+
export declare let GServerCfg: IServerConfig;
|
|
3
|
+
export declare class IServerConfig extends FrameworkConfig {
|
|
4
|
+
port: number;
|
|
5
|
+
protected _server_name: string;
|
|
6
|
+
get serverName(): string;
|
|
7
|
+
constructor(server_name: string);
|
|
8
|
+
init(): boolean;
|
|
9
|
+
}
|
|
@@ -17,7 +17,7 @@ export declare class MongoBaseService<T> {
|
|
|
17
17
|
* @param id
|
|
18
18
|
*/
|
|
19
19
|
getById(id: any): Promise<any>;
|
|
20
|
-
get(proterty?: {}, where?: {}
|
|
20
|
+
get(proterty?: {}, where?: {}): Promise<any>;
|
|
21
21
|
countDocuments(where?: {}, options?: mongo.CountDocumentsOptions): Promise<number>;
|
|
22
22
|
gets(property?: {}, where?: {}, sort?: {}, skip?: number, limit?: number): Promise<any[]>;
|
|
23
23
|
getRandoms(num: number, proterty?: {}, where?: {}): Promise<any[]>;
|
|
@@ -56,7 +56,7 @@ declare class MongoManager {
|
|
|
56
56
|
* 获取单条消息
|
|
57
57
|
* @param collection
|
|
58
58
|
*/
|
|
59
|
-
findOne(collection: string, property?: {}, where?: {}
|
|
59
|
+
findOne(collection: string, property?: {}, where?: {}): Promise<{
|
|
60
60
|
errcode: {
|
|
61
61
|
id: number;
|
|
62
62
|
des: string;
|
|
@@ -1,29 +1,17 @@
|
|
|
1
|
+
import { ISocketServer } from './ISocketServer';
|
|
1
2
|
import { IWebSocket } from './IWebSocket';
|
|
2
|
-
import * as ws from 'websocket';
|
|
3
3
|
import { EProtoType } from './ProtoFilter/IProtoFilter';
|
|
4
|
+
import * as ws from 'websocket';
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* 默认自动重连
|
|
6
|
+
* 服务器接收到的客户端的连接
|
|
7
|
+
* 客户端的session对象
|
|
8
8
|
*/
|
|
9
9
|
export declare class IClientWebSocket extends IWebSocket {
|
|
10
|
-
protected
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
protected _port: number;
|
|
16
|
-
/**
|
|
17
|
-
* 连接的服务器端口
|
|
18
|
-
*/
|
|
19
|
-
get port(): number;
|
|
20
|
-
protected _need_close: boolean;
|
|
21
|
-
constructor(protoType?: EProtoType, protoPath?: string);
|
|
22
|
-
connect(domain: string, port: number): void;
|
|
23
|
-
protected _connect(): void;
|
|
24
|
-
onOpen(e?: any): void;
|
|
25
|
-
onClose(reasonCode: number, description: string): boolean;
|
|
26
|
-
close(): void;
|
|
10
|
+
protected _server: ISocketServer;
|
|
11
|
+
get server(): ISocketServer;
|
|
12
|
+
constructor(server: ISocketServer, protoType?: EProtoType, protoPath?: string);
|
|
13
|
+
onClose(reasonCode: number, description: string): void;
|
|
14
|
+
broadCast(data: any): void;
|
|
27
15
|
protected _onDecode(message: ws.Message, ...params: any[]): any;
|
|
28
16
|
protected _onEncode(data: any, ...params: any[]): any;
|
|
29
17
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IClientWebSocket } from "./IClientWebSocket";
|
|
2
1
|
import { IRpc, RpcBaseMsg } from "./IRpc";
|
|
2
|
+
import { IClientWebSocket } from "./IClientWebSocket";
|
|
3
3
|
export declare class IRpcClientWebSocket extends IClientWebSocket implements IRpc {
|
|
4
4
|
protected _genId(pre?: string): string;
|
|
5
5
|
getNewMsg(cmd: string, errcode?: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IRpc, RpcBaseMsg } from "./IRpc";
|
|
2
1
|
import { IServerWebSocket } from "./IServerWebSocket";
|
|
2
|
+
import { IRpc, RpcBaseMsg } from "./IRpc";
|
|
3
3
|
export declare class IRpcServerWebSocket extends IServerWebSocket implements IRpc {
|
|
4
4
|
protected _genId(pre?: string): string;
|
|
5
5
|
getNewMsg(cmd: string, errcode?: {
|
|
@@ -1,17 +1,28 @@
|
|
|
1
|
-
import { ISocketServer } from './ISocketServer';
|
|
2
1
|
import { IWebSocket } from './IWebSocket';
|
|
3
|
-
import { EProtoType } from './ProtoFilter/IProtoFilter';
|
|
4
2
|
import * as ws from 'websocket';
|
|
3
|
+
import { EProtoType } from './ProtoFilter/IProtoFilter';
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* 连接到服务器的websocket
|
|
6
|
+
* 默认自动重连
|
|
8
7
|
*/
|
|
9
8
|
export declare class IServerWebSocket extends IWebSocket {
|
|
10
|
-
protected
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
protected _host: string;
|
|
10
|
+
/**
|
|
11
|
+
* 连接的服务器地址
|
|
12
|
+
*/
|
|
13
|
+
get host(): string;
|
|
14
|
+
protected _port: number;
|
|
15
|
+
/**
|
|
16
|
+
* 连接的服务器端口
|
|
17
|
+
*/
|
|
18
|
+
get port(): number;
|
|
19
|
+
protected _need_close: boolean;
|
|
20
|
+
constructor(protoType?: EProtoType, protoPath?: string);
|
|
21
|
+
connect(domain: string, port: number): void;
|
|
22
|
+
protected _connect(): void;
|
|
23
|
+
onOpen(e?: any): void;
|
|
24
|
+
onClose(reasonCode: number, description: string): boolean;
|
|
25
|
+
close(): void;
|
|
15
26
|
protected _onDecode(message: ws.Message, ...params: any[]): any;
|
|
16
27
|
protected _onEncode(data: any, ...params: any[]): any;
|
|
17
28
|
}
|
|
@@ -1,38 +1,45 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IClientWebSocket } from './IClientWebSocket';
|
|
2
2
|
import * as ws from 'websocket';
|
|
3
|
+
import { IServerConfig } from '../Config/IServerConfig';
|
|
4
|
+
import { BaseMsg } from './IWebSocket';
|
|
3
5
|
export declare class ISocketServer {
|
|
6
|
+
protected _cfg: IServerConfig;
|
|
7
|
+
get cfg(): IServerConfig;
|
|
4
8
|
protected _is_closed: boolean;
|
|
5
9
|
get isClosed(): boolean;
|
|
6
|
-
private _code;
|
|
7
|
-
get code(): number;
|
|
8
|
-
set code(value: number);
|
|
9
|
-
protected _name: string;
|
|
10
10
|
get name(): string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
get serverWebSocket(): ws.server;
|
|
11
|
+
private _listening_websocket;
|
|
12
|
+
get listeningWebSocket(): ws.server;
|
|
14
13
|
protected _ws_clients: {
|
|
15
|
-
[socketid: number]:
|
|
14
|
+
[socketid: number]: IClientWebSocket;
|
|
16
15
|
};
|
|
17
|
-
private _listen_port;
|
|
18
16
|
get listenPort(): number;
|
|
19
|
-
set listenPort(value: number);
|
|
20
17
|
/**
|
|
21
18
|
* websocket can accepted protocol
|
|
22
19
|
*/
|
|
23
20
|
protected _accepted_protocol: any;
|
|
24
21
|
protected _name_vs_class: {};
|
|
25
22
|
registerWebSocketHandleClass(name: string, cls: any): void;
|
|
26
|
-
constructor(
|
|
27
|
-
removeServerWebSocketBySocketId(socketId:
|
|
23
|
+
constructor(cfg: IServerConfig);
|
|
24
|
+
removeServerWebSocketBySocketId(socketId: number): void;
|
|
28
25
|
run(): Promise<void>;
|
|
29
26
|
stop(): void;
|
|
30
|
-
addClient(
|
|
27
|
+
addClient(ws_client: IClientWebSocket): void;
|
|
31
28
|
isOriginAllowed(origin: any): boolean;
|
|
32
29
|
initWebSocket(wss?: any): void;
|
|
33
30
|
onClose(connection: ws.connection, reason: number, desc: string): void;
|
|
34
31
|
onListenning(): void;
|
|
35
32
|
onRequest(req: ws.request): void;
|
|
36
|
-
createWebSocketObjectByProtocol(server_name: string, _ws: ws.connection):
|
|
33
|
+
createWebSocketObjectByProtocol(server_name: string, _ws: ws.connection): IClientWebSocket;
|
|
37
34
|
protected _getServerNameByCookies(cookies: any): string;
|
|
35
|
+
/**
|
|
36
|
+
* 广播消息
|
|
37
|
+
* @param msg
|
|
38
|
+
*/
|
|
39
|
+
broadCast(msg: BaseMsg): void;
|
|
40
|
+
/**
|
|
41
|
+
* 获取任意客户端连接
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
getAnyWebSocket(): IClientWebSocket;
|
|
38
45
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IRpcServerWebSocket } from "../SocketServer/IRpcServerWebSocket";
|
|
2
2
|
import { RpcBaseMsg } from "../SocketServer/IRpc";
|
|
3
3
|
declare class CgMqMsg extends RpcBaseMsg {
|
|
4
4
|
/**
|
|
@@ -20,7 +20,7 @@ export declare class CgMqRetMsg extends CgMqMsg {
|
|
|
20
20
|
*/
|
|
21
21
|
count: number;
|
|
22
22
|
}
|
|
23
|
-
declare class CgMqServerWebsocket extends
|
|
23
|
+
declare class CgMqServerWebsocket extends IRpcServerWebSocket {
|
|
24
24
|
protected _cgmq: CgMq;
|
|
25
25
|
/**
|
|
26
26
|
* 自己的身份
|
package/dist/types/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { Trigger, GTriggerMgr } from "./AI/TriggerMgr";
|
|
|
10
10
|
export { FrameworkErrorCode } from "./Config/_error_";
|
|
11
11
|
export { Config } from "./Config/Config";
|
|
12
12
|
export { FrameworkConfig } from "./Config/FrameworkConfig";
|
|
13
|
-
export {
|
|
13
|
+
export { IServerConfig, GServerCfg } from "./Config/IServerConfig";
|
|
14
14
|
export { core } from "./Core/Core";
|
|
15
15
|
export { Timer } from "./Core/Timer";
|
|
16
16
|
export { AutoIncrement } from "./Database/Decorator/AutoIncrement";
|
|
@@ -42,8 +42,8 @@ export { GMongoCacheSer, MongoCacheModel } from './Service/MongoCacheService';
|
|
|
42
42
|
export { GoogleProtoFilter } from './SocketServer/ProtoFilter/GoogleProtoFilter';
|
|
43
43
|
export { IProtoFilter } from './SocketServer/ProtoFilter/IProtoFilter';
|
|
44
44
|
export { JsonProtoFilter } from './SocketServer/ProtoFilter/JsonProtoFilter';
|
|
45
|
-
export { IClientWebSocket } from './SocketServer/IClientWebSocket';
|
|
46
45
|
export { IServerWebSocket } from './SocketServer/IServerWebSocket';
|
|
46
|
+
export { IClientWebSocket } from './SocketServer/IClientWebSocket';
|
|
47
47
|
export { ISocketServer } from './SocketServer/ISocketServer';
|
|
48
48
|
export { IWebSocket, BaseMsg } from './SocketServer/IWebSocket';
|
|
49
49
|
export { GAlipayTool } from './ThirdParty/AlipayTool';
|
|
@@ -79,5 +79,5 @@ export { EAccountState } from './Service/ini';
|
|
|
79
79
|
export { RpcBaseMsg } from './SocketServer/IRpc';
|
|
80
80
|
export { Rpc, RpcConfig } from './ThirdParty/Rpc';
|
|
81
81
|
export { CgMq, CgMqConfig } from './ThirdParty/CgMq';
|
|
82
|
-
export { IRpcClientWebSocket } from './SocketServer/IRpcClientWebSocket';
|
|
83
82
|
export { IRpcServerWebSocket } from './SocketServer/IRpcServerWebSocket';
|
|
83
|
+
export { IRpcClientWebSocket } from './SocketServer/IRpcClientWebSocket';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cgserver",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.567",
|
|
4
4
|
"author": "trojan",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"description": "free for all.Websocket or Http",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@types/redis": "^2.8.32",
|
|
44
44
|
"@types/reflect-metadata": "^0.1.0",
|
|
45
45
|
"@types/request": "^2.48.7",
|
|
46
|
-
"@types/underscore": "^1.11.
|
|
46
|
+
"@types/underscore": "^1.11.4",
|
|
47
47
|
"@types/urlencode": "^1.1.2",
|
|
48
48
|
"@types/websocket": "^1.0.4",
|
|
49
49
|
"alipay_sdk2": "^1.1.6",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"reflect-metadata": "^0.1.13",
|
|
75
75
|
"request": "^2.88.0",
|
|
76
76
|
"socket.io": "^4.3.2",
|
|
77
|
-
"underscore": "^1.13.
|
|
77
|
+
"underscore": "^1.13.6",
|
|
78
78
|
"urlencode": "^1.1.0",
|
|
79
79
|
"webpack": "^5.73.0",
|
|
80
80
|
"webpack-node-externals": "^3.0.0",
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { FrameworkConfig, WebServerConfig } from './FrameworkConfig';
|
|
2
|
-
export declare let GServerCfg: ServerConfig;
|
|
3
|
-
export declare class ServerConfig extends FrameworkConfig {
|
|
4
|
-
port: number;
|
|
5
|
-
protected _server_name: string;
|
|
6
|
-
webserver: WebServerConfig;
|
|
7
|
-
get serverName(): string;
|
|
8
|
-
constructor(server_name: any);
|
|
9
|
-
init(): boolean;
|
|
10
|
-
}
|