cgserver 7.8.2113 → 7.9.2113
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/dist/Framework/AI/AiObject.js +11 -0
- package/dist/Framework/AI/AiObject.js.map +1 -0
- package/dist/Framework/AI/Astar.js +134 -0
- package/dist/Framework/AI/Astar.js.map +1 -0
- package/dist/Framework/AI/BehaviorAI.js +309 -0
- package/dist/Framework/AI/BehaviorAI.js.map +1 -0
- package/dist/Framework/AI/Entity.js +34 -0
- package/dist/Framework/AI/Entity.js.map +1 -0
- package/dist/Framework/AI/Point.js +69 -0
- package/dist/Framework/AI/Point.js.map +1 -0
- package/dist/Framework/AI/TriggerMgr.js +202 -0
- package/dist/Framework/AI/TriggerMgr.js.map +1 -0
- package/dist/Framework/Config/Config.js +55 -0
- package/dist/Framework/Config/Config.js.map +1 -0
- package/dist/Framework/Config/FrameworkConfig.js +241 -0
- package/dist/Framework/Config/FrameworkConfig.js.map +1 -0
- package/dist/Framework/Config/IServerConfig.js +27 -0
- package/dist/Framework/Config/IServerConfig.js.map +1 -0
- package/dist/Framework/Config/_error_.js +36 -0
- package/dist/Framework/Config/_error_.js.map +1 -0
- package/dist/Framework/Core/Core.js +641 -0
- package/dist/Framework/Core/Core.js.map +1 -0
- package/dist/Framework/Core/Timer.js +117 -0
- package/dist/Framework/Core/Timer.js.map +1 -0
- package/dist/Framework/Database/Decorator/AutoIncrement.js +12 -0
- package/dist/Framework/Database/Decorator/AutoIncrement.js.map +1 -0
- package/dist/Framework/Database/Decorator/DBCache.js +66 -0
- package/dist/Framework/Database/Decorator/DBCache.js.map +1 -0
- package/dist/Framework/Database/Decorator/NotNull.js +12 -0
- package/dist/Framework/Database/Decorator/NotNull.js.map +1 -0
- package/dist/Framework/Database/Decorator/PrimaryKey.js +12 -0
- package/dist/Framework/Database/Decorator/PrimaryKey.js.map +1 -0
- package/dist/Framework/Database/Decorator/Property.js +62 -0
- package/dist/Framework/Database/Decorator/Property.js.map +1 -0
- package/dist/Framework/Database/Decorator/Table.js +16 -0
- package/dist/Framework/Database/Decorator/Table.js.map +1 -0
- package/dist/Framework/Database/Decorator/Type.js +21 -0
- package/dist/Framework/Database/Decorator/Type.js.map +1 -0
- package/dist/Framework/Database/MSSqlManager.js +45 -0
- package/dist/Framework/Database/MSSqlManager.js.map +1 -0
- package/dist/Framework/Database/MongoBaseService.js +115 -0
- package/dist/Framework/Database/MongoBaseService.js.map +1 -0
- package/dist/Framework/Database/MongoManager.js +429 -0
- package/dist/Framework/Database/MongoManager.js.map +1 -0
- package/dist/Framework/Database/MysqlBaseService.js +282 -0
- package/dist/Framework/Database/MysqlBaseService.js.map +1 -0
- package/dist/Framework/Database/MysqlManager.js +182 -0
- package/dist/Framework/Database/MysqlManager.js.map +1 -0
- package/dist/Framework/Database/RedisManager.js +410 -0
- package/dist/Framework/Database/RedisManager.js.map +1 -0
- package/dist/Framework/Logic/CacheTool.js +75 -0
- package/dist/Framework/Logic/CacheTool.js.map +1 -0
- package/dist/Framework/Logic/EventTool.js +29 -0
- package/dist/Framework/Logic/EventTool.js.map +1 -0
- package/dist/Framework/Logic/HttpTool.js +77 -0
- package/dist/Framework/Logic/HttpTool.js.map +1 -0
- package/dist/Framework/Logic/Log.js +142 -0
- package/dist/Framework/Logic/Log.js.map +1 -0
- package/dist/Framework/Logic/SyncQueueTool.js +44 -0
- package/dist/Framework/Logic/SyncQueueTool.js.map +1 -0
- package/dist/Framework/Service/AccountService.js +482 -0
- package/dist/Framework/Service/AccountService.js.map +1 -0
- package/dist/Framework/Service/MongoAccountService.js +404 -0
- package/dist/Framework/Service/MongoAccountService.js.map +1 -0
- package/dist/Framework/Service/MongoCacheService.js +43 -0
- package/dist/Framework/Service/MongoCacheService.js.map +1 -0
- package/dist/Framework/Service/MongoUserService.js +95 -0
- package/dist/Framework/Service/MongoUserService.js.map +1 -0
- package/dist/Framework/Service/UserService.js +200 -0
- package/dist/Framework/Service/UserService.js.map +1 -0
- package/dist/Framework/Service/ini.js +37 -0
- package/dist/Framework/Service/ini.js.map +1 -0
- package/dist/Framework/SocketServer/IClientWebSocket.js +45 -0
- package/dist/Framework/SocketServer/IClientWebSocket.js.map +1 -0
- package/dist/Framework/SocketServer/IRpc.js +13 -0
- package/dist/Framework/SocketServer/IRpc.js.map +1 -0
- package/dist/Framework/SocketServer/IRpcClientWebSocket.js +64 -0
- package/dist/Framework/SocketServer/IRpcClientWebSocket.js.map +1 -0
- package/dist/Framework/SocketServer/IRpcServerWebSocket.js +64 -0
- package/dist/Framework/SocketServer/IRpcServerWebSocket.js.map +1 -0
- package/dist/Framework/SocketServer/IServerWebSocket.js +77 -0
- package/dist/Framework/SocketServer/IServerWebSocket.js.map +1 -0
- package/dist/Framework/SocketServer/ISocketServer.js +204 -0
- package/dist/Framework/SocketServer/ISocketServer.js.map +1 -0
- package/dist/Framework/SocketServer/IWebSocket.js +197 -0
- package/dist/Framework/SocketServer/IWebSocket.js.map +1 -0
- package/dist/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +59 -0
- package/dist/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js.map +1 -0
- package/dist/Framework/SocketServer/ProtoFilter/IProtoFilter.js +9 -0
- package/dist/Framework/SocketServer/ProtoFilter/IProtoFilter.js.map +1 -0
- package/dist/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +30 -0
- package/dist/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js.map +1 -0
- package/dist/Framework/SocketServer/ProtoFilter/ProtoFactory.js +32 -0
- package/dist/Framework/SocketServer/ProtoFilter/ProtoFactory.js.map +1 -0
- package/dist/Framework/ThirdParty/AlipayTool.js +205 -0
- package/dist/Framework/ThirdParty/AlipayTool.js.map +1 -0
- package/dist/Framework/ThirdParty/Alisms.js +47 -0
- package/dist/Framework/ThirdParty/Alisms.js.map +1 -0
- package/dist/Framework/ThirdParty/AppleTool.js +236 -0
- package/dist/Framework/ThirdParty/AppleTool.js.map +1 -0
- package/dist/Framework/ThirdParty/CgMq.js +133 -0
- package/dist/Framework/ThirdParty/CgMq.js.map +1 -0
- package/dist/Framework/ThirdParty/EmailTool.js +35 -0
- package/dist/Framework/ThirdParty/EmailTool.js.map +1 -0
- package/dist/Framework/ThirdParty/OpenSocial.js +33 -0
- package/dist/Framework/ThirdParty/OpenSocial.js.map +1 -0
- package/dist/Framework/ThirdParty/QQTool.js +117 -0
- package/dist/Framework/ThirdParty/QQTool.js.map +1 -0
- package/dist/Framework/ThirdParty/QiniuTool.js +23 -0
- package/dist/Framework/ThirdParty/QiniuTool.js.map +1 -0
- package/dist/Framework/ThirdParty/Rpc.js +64 -0
- package/dist/Framework/ThirdParty/Rpc.js.map +1 -0
- package/dist/Framework/ThirdParty/WechatOATool.js +62 -0
- package/dist/Framework/ThirdParty/WechatOATool.js.map +1 -0
- package/dist/Framework/ThirdParty/WechatTool.js +76 -0
- package/dist/Framework/ThirdParty/WechatTool.js.map +1 -0
- package/dist/Framework/WebServer/Controller/BaseController.js +113 -0
- package/dist/Framework/WebServer/Controller/BaseController.js.map +1 -0
- package/dist/Framework/WebServer/Controller/BaseUserController.js +170 -0
- package/dist/Framework/WebServer/Controller/BaseUserController.js.map +1 -0
- package/dist/Framework/WebServer/Controller/MongoBaseUserController.js +170 -0
- package/dist/Framework/WebServer/Controller/MongoBaseUserController.js.map +1 -0
- package/dist/Framework/WebServer/Decorator/AdminValidate.js +20 -0
- package/dist/Framework/WebServer/Decorator/AdminValidate.js.map +1 -0
- package/dist/Framework/WebServer/Decorator/AuthorityValidate.js +23 -0
- package/dist/Framework/WebServer/Decorator/AuthorityValidate.js.map +1 -0
- package/dist/Framework/WebServer/Decorator/CreatorValidate.js +20 -0
- package/dist/Framework/WebServer/Decorator/CreatorValidate.js.map +1 -0
- package/dist/Framework/WebServer/Decorator/JsonAdminValidate.js +16 -0
- package/dist/Framework/WebServer/Decorator/JsonAdminValidate.js.map +1 -0
- package/dist/Framework/WebServer/Decorator/JsonAuthorityValidate.js +21 -0
- package/dist/Framework/WebServer/Decorator/JsonAuthorityValidate.js.map +1 -0
- package/dist/Framework/WebServer/Decorator/JsonCreatorValidate.js +20 -0
- package/dist/Framework/WebServer/Decorator/JsonCreatorValidate.js.map +1 -0
- package/dist/Framework/WebServer/Decorator/SyncCall.js +22 -0
- package/dist/Framework/WebServer/Decorator/SyncCall.js.map +1 -0
- package/dist/Framework/WebServer/Decorator/SyncCallServer.js +42 -0
- package/dist/Framework/WebServer/Decorator/SyncCallServer.js.map +1 -0
- package/dist/Framework/WebServer/Engine/ControllerManager.js +113 -0
- package/dist/Framework/WebServer/Engine/ControllerManager.js.map +1 -0
- package/dist/Framework/WebServer/Engine/Engine.js +155 -0
- package/dist/Framework/WebServer/Engine/Engine.js.map +1 -0
- package/dist/Framework/WebServer/Engine/RazorJs.js +545 -0
- package/dist/Framework/WebServer/Engine/RazorJs.js.map +1 -0
- package/dist/Framework/WebServer/Engine/Request.js +217 -0
- package/dist/Framework/WebServer/Engine/Request.js.map +1 -0
- package/dist/Framework/WebServer/Engine/Response.js +102 -0
- package/dist/Framework/WebServer/Engine/Response.js.map +1 -0
- package/dist/Framework/WebServer/IWebServer.js +55 -0
- package/dist/Framework/WebServer/IWebServer.js.map +1 -0
- package/dist/Framework/cgserver.js +88 -0
- package/dist/Framework/cgserver.js.map +1 -0
- package/dist/Framework/index.js +184 -0
- package/dist/Framework/index.js.map +1 -0
- package/dist/lib/AI/AiObject.js +9 -6
- package/dist/lib/AI/Astar.js +52 -45
- package/dist/lib/AI/BehaviorAI.js +64 -69
- package/dist/lib/AI/Entity.js +38 -23
- package/dist/lib/AI/Point.js +37 -34
- package/dist/lib/AI/TriggerMgr.js +66 -60
- package/dist/lib/Config/Config.js +22 -21
- package/dist/lib/Config/FrameworkConfig.js +235 -214
- package/dist/lib/Config/IServerConfig.js +38 -16
- package/dist/lib/Config/_error_.js +29 -27
- package/dist/lib/Core/Core.js +358 -287
- package/dist/lib/Core/Timer.js +94 -61
- package/dist/lib/Database/Decorator/AutoIncrement.js +4 -4
- package/dist/lib/Database/Decorator/DBCache.js +108 -54
- package/dist/lib/Database/Decorator/NotNull.js +4 -4
- package/dist/lib/Database/Decorator/PrimaryKey.js +4 -4
- package/dist/lib/Database/Decorator/Property.js +48 -39
- package/dist/lib/Database/Decorator/Table.js +3 -3
- package/dist/lib/Database/Decorator/Type.js +6 -6
- package/dist/lib/Database/MSSqlManager.js +99 -36
- package/dist/lib/Database/MongoBaseService.js +270 -91
- package/dist/lib/Database/MongoManager.js +625 -382
- package/dist/lib/Database/MysqlBaseService.js +462 -265
- package/dist/lib/Database/MysqlManager.js +164 -94
- package/dist/lib/Database/RedisManager.js +219 -152
- package/dist/lib/Framework/AI/AiObject.js +10 -0
- package/dist/lib/Framework/AI/AiObject.js.map +1 -0
- package/dist/lib/Framework/AI/Astar.js +133 -0
- package/dist/lib/Framework/AI/Astar.js.map +1 -0
- package/dist/lib/Framework/AI/BehaviorAI.js +307 -0
- package/dist/lib/Framework/AI/BehaviorAI.js.map +1 -0
- package/dist/lib/Framework/AI/Entity.js +33 -0
- package/dist/lib/Framework/AI/Entity.js.map +1 -0
- package/dist/lib/Framework/AI/Point.js +68 -0
- package/dist/lib/Framework/AI/Point.js.map +1 -0
- package/dist/lib/Framework/AI/TriggerMgr.js +201 -0
- package/dist/lib/Framework/AI/TriggerMgr.js.map +1 -0
- package/dist/lib/Framework/Config/Config.js +53 -0
- package/dist/lib/Framework/Config/Config.js.map +1 -0
- package/dist/lib/Framework/Config/FrameworkConfig.js +240 -0
- package/dist/lib/Framework/Config/FrameworkConfig.js.map +1 -0
- package/dist/lib/Framework/Config/IServerConfig.js +26 -0
- package/dist/lib/Framework/Config/IServerConfig.js.map +1 -0
- package/dist/lib/Framework/Config/_error_.js +35 -0
- package/dist/lib/Framework/Config/_error_.js.map +1 -0
- package/dist/lib/Framework/Core/Core.js +639 -0
- package/dist/lib/Framework/Core/Core.js.map +1 -0
- package/dist/lib/Framework/Core/Timer.js +116 -0
- package/dist/lib/Framework/Core/Timer.js.map +1 -0
- package/dist/lib/Framework/Database/Decorator/AutoIncrement.js +11 -0
- package/dist/lib/Framework/Database/Decorator/AutoIncrement.js.map +1 -0
- package/dist/lib/Framework/Database/Decorator/DBCache.js +64 -0
- package/dist/lib/Framework/Database/Decorator/DBCache.js.map +1 -0
- package/dist/lib/Framework/Database/Decorator/NotNull.js +11 -0
- package/dist/lib/Framework/Database/Decorator/NotNull.js.map +1 -0
- package/dist/lib/Framework/Database/Decorator/PrimaryKey.js +11 -0
- package/dist/lib/Framework/Database/Decorator/PrimaryKey.js.map +1 -0
- package/dist/lib/Framework/Database/Decorator/Property.js +61 -0
- package/dist/lib/Framework/Database/Decorator/Property.js.map +1 -0
- package/dist/lib/Framework/Database/Decorator/Table.js +15 -0
- package/dist/lib/Framework/Database/Decorator/Table.js.map +1 -0
- package/dist/lib/Framework/Database/Decorator/Type.js +20 -0
- package/dist/lib/Framework/Database/Decorator/Type.js.map +1 -0
- package/dist/lib/Framework/Database/MSSqlManager.js +43 -0
- package/dist/lib/Framework/Database/MSSqlManager.js.map +1 -0
- package/dist/lib/Framework/Database/MongoBaseService.js +114 -0
- package/dist/lib/Framework/Database/MongoBaseService.js.map +1 -0
- package/dist/lib/Framework/Database/MongoManager.js +427 -0
- package/dist/lib/Framework/Database/MongoManager.js.map +1 -0
- package/dist/lib/Framework/Database/MysqlBaseService.js +281 -0
- package/dist/lib/Framework/Database/MysqlBaseService.js.map +1 -0
- package/dist/lib/Framework/Database/MysqlManager.js +180 -0
- package/dist/lib/Framework/Database/MysqlManager.js.map +1 -0
- package/dist/lib/Framework/Database/RedisManager.js +408 -0
- package/dist/lib/Framework/Database/RedisManager.js.map +1 -0
- package/dist/lib/Framework/Logic/CacheTool.js +73 -0
- package/dist/lib/Framework/Logic/CacheTool.js.map +1 -0
- package/dist/lib/Framework/Logic/EventTool.js +27 -0
- package/dist/lib/Framework/Logic/EventTool.js.map +1 -0
- package/dist/lib/Framework/Logic/HttpTool.js +75 -0
- package/dist/lib/Framework/Logic/HttpTool.js.map +1 -0
- package/dist/lib/Framework/Logic/Log.js +140 -0
- package/dist/lib/Framework/Logic/Log.js.map +1 -0
- package/dist/lib/Framework/Logic/SyncQueueTool.js +43 -0
- package/dist/lib/Framework/Logic/SyncQueueTool.js.map +1 -0
- package/dist/lib/Framework/Service/AccountService.js +473 -0
- package/dist/lib/Framework/Service/AccountService.js.map +1 -0
- package/dist/lib/Framework/Service/MongoAccountService.js +403 -0
- package/dist/lib/Framework/Service/MongoAccountService.js.map +1 -0
- package/dist/lib/Framework/Service/MongoCacheService.js +42 -0
- package/dist/lib/Framework/Service/MongoCacheService.js.map +1 -0
- package/dist/lib/Framework/Service/MongoUserService.js +93 -0
- package/dist/lib/Framework/Service/MongoUserService.js.map +1 -0
- package/dist/lib/Framework/Service/UserService.js +184 -0
- package/dist/lib/Framework/Service/UserService.js.map +1 -0
- package/dist/lib/Framework/Service/ini.js +36 -0
- package/dist/lib/Framework/Service/ini.js.map +1 -0
- package/dist/lib/Framework/SocketServer/IClientWebSocket.js +44 -0
- package/dist/lib/Framework/SocketServer/IClientWebSocket.js.map +1 -0
- package/dist/lib/Framework/SocketServer/IRpc.js +12 -0
- package/dist/lib/Framework/SocketServer/IRpc.js.map +1 -0
- package/dist/lib/Framework/SocketServer/IRpcClientWebSocket.js +63 -0
- package/dist/lib/Framework/SocketServer/IRpcClientWebSocket.js.map +1 -0
- package/dist/lib/Framework/SocketServer/IRpcServerWebSocket.js +63 -0
- package/dist/lib/Framework/SocketServer/IRpcServerWebSocket.js.map +1 -0
- package/dist/lib/Framework/SocketServer/IServerWebSocket.js +75 -0
- package/dist/lib/Framework/SocketServer/IServerWebSocket.js.map +1 -0
- package/dist/lib/Framework/SocketServer/ISocketServer.js +202 -0
- package/dist/lib/Framework/SocketServer/ISocketServer.js.map +1 -0
- package/dist/lib/Framework/SocketServer/IWebSocket.js +195 -0
- package/dist/lib/Framework/SocketServer/IWebSocket.js.map +1 -0
- package/dist/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +57 -0
- package/dist/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js.map +1 -0
- package/dist/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js +8 -0
- package/dist/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js.map +1 -0
- package/dist/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +29 -0
- package/dist/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js.map +1 -0
- package/dist/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js +31 -0
- package/dist/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/AlipayTool.js +203 -0
- package/dist/lib/Framework/ThirdParty/AlipayTool.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/Alisms.js +46 -0
- package/dist/lib/Framework/ThirdParty/Alisms.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/AppleTool.js +234 -0
- package/dist/lib/Framework/ThirdParty/AppleTool.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/CgMq.js +132 -0
- package/dist/lib/Framework/ThirdParty/CgMq.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/EmailTool.js +33 -0
- package/dist/lib/Framework/ThirdParty/EmailTool.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/OpenSocial.js +32 -0
- package/dist/lib/Framework/ThirdParty/OpenSocial.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/QQTool.js +115 -0
- package/dist/lib/Framework/ThirdParty/QQTool.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/QiniuTool.js +21 -0
- package/dist/lib/Framework/ThirdParty/QiniuTool.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/Rpc.js +63 -0
- package/dist/lib/Framework/ThirdParty/Rpc.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/WechatOATool.js +61 -0
- package/dist/lib/Framework/ThirdParty/WechatOATool.js.map +1 -0
- package/dist/lib/Framework/ThirdParty/WechatTool.js +74 -0
- package/dist/lib/Framework/ThirdParty/WechatTool.js.map +1 -0
- package/dist/lib/Framework/WebServer/Controller/BaseController.js +112 -0
- package/dist/lib/Framework/WebServer/Controller/BaseController.js.map +1 -0
- package/dist/lib/Framework/WebServer/Controller/BaseUserController.js +169 -0
- package/dist/lib/Framework/WebServer/Controller/BaseUserController.js.map +1 -0
- package/dist/lib/Framework/WebServer/Controller/MongoBaseUserController.js +169 -0
- package/dist/lib/Framework/WebServer/Controller/MongoBaseUserController.js.map +1 -0
- package/dist/lib/Framework/WebServer/Decorator/AdminValidate.js +19 -0
- package/dist/lib/Framework/WebServer/Decorator/AdminValidate.js.map +1 -0
- package/dist/lib/Framework/WebServer/Decorator/AuthorityValidate.js +22 -0
- package/dist/lib/Framework/WebServer/Decorator/AuthorityValidate.js.map +1 -0
- package/dist/lib/Framework/WebServer/Decorator/CreatorValidate.js +19 -0
- package/dist/lib/Framework/WebServer/Decorator/CreatorValidate.js.map +1 -0
- package/dist/lib/Framework/WebServer/Decorator/JsonAdminValidate.js +15 -0
- package/dist/lib/Framework/WebServer/Decorator/JsonAdminValidate.js.map +1 -0
- package/dist/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js +20 -0
- package/dist/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js.map +1 -0
- package/dist/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js +19 -0
- package/dist/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js.map +1 -0
- package/dist/lib/Framework/WebServer/Decorator/SyncCall.js +21 -0
- package/dist/lib/Framework/WebServer/Decorator/SyncCall.js.map +1 -0
- package/dist/lib/Framework/WebServer/Decorator/SyncCallServer.js +41 -0
- package/dist/lib/Framework/WebServer/Decorator/SyncCallServer.js.map +1 -0
- package/dist/lib/Framework/WebServer/Engine/ControllerManager.js +112 -0
- package/dist/lib/Framework/WebServer/Engine/ControllerManager.js.map +1 -0
- package/dist/lib/Framework/WebServer/Engine/Engine.js +153 -0
- package/dist/lib/Framework/WebServer/Engine/Engine.js.map +1 -0
- package/dist/lib/Framework/WebServer/Engine/RazorJs.js +544 -0
- package/dist/lib/Framework/WebServer/Engine/RazorJs.js.map +1 -0
- package/dist/lib/Framework/WebServer/Engine/Request.js +216 -0
- package/dist/lib/Framework/WebServer/Engine/Request.js.map +1 -0
- package/dist/lib/Framework/WebServer/Engine/Response.js +100 -0
- package/dist/lib/Framework/WebServer/Engine/Response.js.map +1 -0
- package/dist/lib/Framework/WebServer/IWebServer.js +54 -0
- package/dist/lib/Framework/WebServer/IWebServer.js.map +1 -0
- package/dist/lib/Framework/cgserver.js +87 -0
- package/dist/lib/Framework/cgserver.js.map +1 -0
- package/dist/lib/Framework/index.js +186 -0
- package/dist/lib/Framework/index.js.map +1 -0
- package/dist/lib/Logic/CacheTool.js +32 -28
- package/dist/lib/Logic/EventTool.js +33 -18
- package/dist/lib/Logic/HttpTool.js +24 -21
- package/dist/lib/Logic/Log.js +70 -62
- package/dist/lib/Logic/SyncQueueTool.js +126 -35
- package/dist/lib/Service/AccountService.js +612 -420
- package/dist/lib/Service/MongoAccountService.js +551 -356
- package/dist/lib/Service/MongoCacheService.js +114 -34
- package/dist/lib/Service/MongoUserService.js +189 -85
- package/dist/lib/Service/UserService.js +282 -170
- package/dist/lib/Service/ini.js +1 -1
- package/dist/lib/SocketServer/IClientWebSocket.js +58 -26
- package/dist/lib/SocketServer/IRpc.js +32 -8
- package/dist/lib/SocketServer/IRpcClientWebSocket.js +115 -48
- package/dist/lib/SocketServer/IRpcServerWebSocket.js +115 -48
- package/dist/lib/SocketServer/IServerWebSocket.js +86 -49
- package/dist/lib/SocketServer/ISocketServer.js +174 -101
- package/dist/lib/SocketServer/IWebSocket.js +213 -120
- package/dist/lib/SocketServer/ProtoFilter/GoogleProtoFilter.js +22 -19
- package/dist/lib/SocketServer/ProtoFilter/IProtoFilter.js +1 -1
- package/dist/lib/SocketServer/ProtoFilter/JsonProtoFilter.js +14 -11
- package/dist/lib/SocketServer/ProtoFilter/ProtoFactory.js +13 -10
- package/dist/lib/ThirdParty/AlipayTool.js +171 -110
- package/dist/lib/ThirdParty/Alisms.js +20 -16
- package/dist/lib/ThirdParty/AppleTool.js +259 -179
- package/dist/lib/ThirdParty/CgMq.js +268 -118
- package/dist/lib/ThirdParty/EmailTool.js +15 -12
- package/dist/lib/ThirdParty/OpenSocial.js +83 -24
- package/dist/lib/ThirdParty/QQTool.js +153 -86
- package/dist/lib/ThirdParty/QiniuTool.js +21 -14
- package/dist/lib/ThirdParty/Rpc.js +169 -51
- package/dist/lib/ThirdParty/WechatOATool.js +32 -26
- package/dist/lib/ThirdParty/WechatTool.js +134 -60
- package/dist/lib/WebServer/Controller/BaseController.js +122 -56
- package/dist/lib/WebServer/Controller/BaseUserController.js +244 -110
- package/dist/lib/WebServer/Controller/MongoBaseUserController.js +244 -110
- package/dist/lib/WebServer/Decorator/AdminValidate.js +3 -3
- package/dist/lib/WebServer/Decorator/AuthorityValidate.js +4 -4
- package/dist/lib/WebServer/Decorator/CreatorValidate.js +3 -3
- package/dist/lib/WebServer/Decorator/JsonAdminValidate.js +3 -3
- package/dist/lib/WebServer/Decorator/JsonAuthorityValidate.js +4 -4
- package/dist/lib/WebServer/Decorator/JsonCreatorValidate.js +3 -3
- package/dist/lib/WebServer/Decorator/SyncCall.js +49 -7
- package/dist/lib/WebServer/Decorator/SyncCallServer.js +96 -27
- package/dist/lib/WebServer/Engine/ControllerManager.js +35 -30
- package/dist/lib/WebServer/Engine/Engine.js +152 -98
- package/dist/lib/WebServer/Engine/RazorJs.js +64 -61
- package/dist/lib/WebServer/Engine/Request.js +183 -125
- package/dist/lib/WebServer/Engine/Response.js +50 -48
- package/dist/lib/WebServer/IWebServer.js +91 -38
- package/dist/lib/cgserver.js +57 -44
- package/dist/lib/index.js +107 -96
- package/dist/lib/test/test.js +21 -0
- package/dist/lib/test/test.js.map +1 -0
- package/dist/test/test.js +11 -0
- package/dist/test/test.js.map +1 -0
- package/dist/types/Framework/AI/AiObject.d.ts +5 -0
- package/dist/types/Framework/AI/Astar.d.ts +38 -0
- package/dist/types/Framework/AI/BehaviorAI.d.ts +24 -0
- package/dist/types/Framework/AI/Entity.d.ts +12 -0
- package/dist/types/Framework/AI/Point.d.ts +17 -0
- package/dist/types/Framework/AI/TriggerMgr.d.ts +52 -0
- package/dist/types/Framework/Config/Config.d.ts +12 -0
- package/dist/types/Framework/Config/FrameworkConfig.d.ts +228 -0
- package/dist/types/Framework/Config/IServerConfig.d.ts +9 -0
- package/dist/types/Framework/Config/_error_.d.ts +99 -0
- package/dist/types/Framework/Core/Core.d.ts +108 -0
- package/dist/types/Framework/Core/Timer.d.ts +16 -0
- package/dist/types/Framework/Database/Decorator/AutoIncrement.d.ts +1 -0
- package/dist/types/Framework/Database/Decorator/DBCache.d.ts +23 -0
- package/dist/types/Framework/Database/Decorator/NotNull.d.ts +1 -0
- package/dist/types/Framework/Database/Decorator/PrimaryKey.d.ts +1 -0
- package/dist/types/Framework/Database/Decorator/Property.d.ts +57 -0
- package/dist/types/Framework/Database/Decorator/Table.d.ts +1 -0
- package/dist/types/Framework/Database/Decorator/Type.d.ts +1 -0
- package/dist/types/Framework/Database/MSSqlManager.d.ts +17 -0
- package/dist/types/Framework/Database/MongoBaseService.d.ts +81 -0
- package/dist/types/Framework/Database/MongoManager.d.ts +143 -0
- package/dist/types/Framework/Database/MysqlBaseService.d.ts +34 -0
- package/dist/types/Framework/Database/MysqlManager.d.ts +41 -0
- package/dist/types/Framework/Database/RedisManager.d.ts +64 -0
- package/dist/types/Framework/Logic/CacheTool.d.ts +27 -0
- package/dist/types/Framework/Logic/EventTool.d.ts +13 -0
- package/dist/types/Framework/Logic/HttpTool.d.ts +15 -0
- package/dist/types/Framework/Logic/Log.d.ts +25 -0
- package/dist/types/Framework/Logic/SyncQueueTool.d.ts +21 -0
- package/dist/types/Framework/Service/AccountService.d.ts +77 -0
- package/dist/types/Framework/Service/MongoAccountService.d.ts +78 -0
- package/dist/types/Framework/Service/MongoCacheService.d.ts +14 -0
- package/dist/types/Framework/Service/MongoUserService.d.ts +36 -0
- package/dist/types/Framework/Service/UserService.d.ts +36 -0
- package/dist/types/Framework/Service/ini.d.ts +29 -0
- package/dist/types/Framework/SocketServer/IClientWebSocket.d.ts +17 -0
- package/dist/types/Framework/SocketServer/IRpc.d.ts +8 -0
- package/dist/types/Framework/SocketServer/IRpcClientWebSocket.d.ts +16 -0
- package/dist/types/Framework/SocketServer/IRpcServerWebSocket.d.ts +16 -0
- package/dist/types/Framework/SocketServer/IServerWebSocket.d.ts +28 -0
- package/dist/types/Framework/SocketServer/ISocketServer.d.ts +45 -0
- package/dist/types/Framework/SocketServer/IWebSocket.d.ts +60 -0
- package/dist/types/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +9 -0
- package/dist/types/Framework/SocketServer/ProtoFilter/IProtoFilter.d.ts +9 -0
- package/dist/types/Framework/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +6 -0
- package/dist/types/Framework/SocketServer/ProtoFilter/ProtoFactory.d.ts +8 -0
- package/dist/types/Framework/ThirdParty/AlipayTool.d.ts +109 -0
- package/dist/types/Framework/ThirdParty/Alisms.d.ts +14 -0
- package/dist/types/Framework/ThirdParty/AppleTool.d.ts +131 -0
- package/dist/types/Framework/ThirdParty/CgMq.d.ts +51 -0
- package/dist/types/Framework/ThirdParty/EmailTool.d.ts +5 -0
- package/dist/types/Framework/ThirdParty/OpenSocial.d.ts +7 -0
- package/dist/types/Framework/ThirdParty/QQTool.d.ts +41 -0
- package/dist/types/Framework/ThirdParty/QiniuTool.d.ts +6 -0
- package/dist/types/Framework/ThirdParty/Rpc.d.ts +20 -0
- package/dist/types/Framework/ThirdParty/WechatOATool.d.ts +13 -0
- package/dist/types/Framework/ThirdParty/WechatTool.d.ts +20 -0
- package/dist/types/Framework/WebServer/Controller/BaseController.d.ts +33 -0
- package/dist/types/Framework/WebServer/Controller/BaseUserController.d.ts +27 -0
- package/dist/types/Framework/WebServer/Controller/MongoBaseUserController.d.ts +27 -0
- package/dist/types/Framework/WebServer/Decorator/AdminValidate.d.ts +1 -0
- package/dist/types/Framework/WebServer/Decorator/AuthorityValidate.d.ts +2 -0
- package/dist/types/Framework/WebServer/Decorator/CreatorValidate.d.ts +1 -0
- package/dist/types/Framework/WebServer/Decorator/JsonAdminValidate.d.ts +1 -0
- package/dist/types/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
- package/dist/types/Framework/WebServer/Decorator/JsonCreatorValidate.d.ts +1 -0
- package/dist/types/Framework/WebServer/Decorator/SyncCall.d.ts +7 -0
- package/dist/types/Framework/WebServer/Decorator/SyncCallServer.d.ts +7 -0
- package/dist/types/Framework/WebServer/Engine/ControllerManager.d.ts +35 -0
- package/dist/types/Framework/WebServer/Engine/Engine.d.ts +21 -0
- package/dist/types/Framework/WebServer/Engine/RazorJs.d.ts +21 -0
- package/dist/types/Framework/WebServer/Engine/Request.d.ts +35 -0
- package/dist/types/Framework/WebServer/Engine/Response.d.ts +30 -0
- package/dist/types/Framework/WebServer/IWebServer.d.ts +20 -0
- package/dist/types/Framework/cgserver.d.ts +24 -0
- package/dist/types/Framework/index.d.ts +85 -0
- package/dist/types/test/test.d.ts +1 -0
- package/package.json +1 -1
- package/src/Framework/AI/AiObject.ts +12 -0
- package/src/Framework/AI/Astar.ts +157 -0
- package/src/Framework/AI/BehaviorAI.ts +382 -0
- package/src/Framework/AI/Entity.ts +37 -0
- package/src/Framework/AI/Point.ts +84 -0
- package/src/Framework/AI/TriggerMgr.ts +280 -0
- package/src/Framework/Config/Config.ts +61 -0
- package/src/Framework/Config/FrameworkConfig.ts +286 -0
- package/src/Framework/Config/IServerConfig.ts +28 -0
- package/src/Framework/Config/_error_.ts +32 -0
- package/src/Framework/Core/Core.ts +810 -0
- package/src/Framework/Core/Timer.ts +147 -0
- package/src/Framework/Database/Decorator/AutoIncrement.ts +9 -0
- package/src/Framework/Database/Decorator/DBCache.ts +74 -0
- package/src/Framework/Database/Decorator/NotNull.ts +9 -0
- package/src/Framework/Database/Decorator/PrimaryKey.ts +9 -0
- package/src/Framework/Database/Decorator/Property.ts +64 -0
- package/src/Framework/Database/Decorator/Table.ts +13 -0
- package/src/Framework/Database/Decorator/Type.ts +21 -0
- package/src/Framework/Database/MSSqlManager.ts +52 -0
- package/src/Framework/Database/MongoBaseService.ts +136 -0
- package/src/Framework/Database/MongoManager.ts +501 -0
- package/src/Framework/Database/MysqlBaseService.ts +345 -0
- package/src/Framework/Database/MysqlManager.ts +212 -0
- package/src/Framework/Database/RedisManager.ts +544 -0
- package/src/Framework/Logic/CacheTool.ts +85 -0
- package/src/Framework/Logic/EventTool.ts +31 -0
- package/src/Framework/Logic/HttpTool.ts +82 -0
- package/src/Framework/Logic/Log.ts +171 -0
- package/src/Framework/Logic/SyncQueueTool.ts +51 -0
- package/src/Framework/Service/AccountService.ts +508 -0
- package/src/Framework/Service/MongoAccountService.ts +456 -0
- package/src/Framework/Service/MongoCacheService.ts +48 -0
- package/src/Framework/Service/MongoUserService.ts +103 -0
- package/src/Framework/Service/UserService.ts +168 -0
- package/src/Framework/Service/ini.ts +33 -0
- package/src/Framework/SocketServer/IClientWebSocket.ts +50 -0
- package/src/Framework/SocketServer/IRpc.ts +12 -0
- package/src/Framework/SocketServer/IRpcClientWebSocket.ts +75 -0
- package/src/Framework/SocketServer/IRpcServerWebSocket.ts +76 -0
- package/src/Framework/SocketServer/IServerWebSocket.ts +88 -0
- package/src/Framework/SocketServer/ISocketServer.ts +243 -0
- package/src/Framework/SocketServer/IWebSocket.ts +243 -0
- package/src/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.ts +68 -0
- package/src/Framework/SocketServer/ProtoFilter/IProtoFilter.ts +11 -0
- package/src/Framework/SocketServer/ProtoFilter/JsonProtoFilter.ts +34 -0
- package/src/Framework/SocketServer/ProtoFilter/ProtoFactory.ts +34 -0
- package/src/Framework/ThirdParty/AlipayTool.ts +224 -0
- package/src/Framework/ThirdParty/Alisms.ts +53 -0
- package/src/Framework/ThirdParty/AppleTool.ts +252 -0
- package/src/Framework/ThirdParty/CgMq.ts +153 -0
- package/src/Framework/ThirdParty/EmailTool.ts +37 -0
- package/src/Framework/ThirdParty/OpenSocial.ts +36 -0
- package/src/Framework/ThirdParty/QQTool.ts +124 -0
- package/src/Framework/ThirdParty/QiniuTool.ts +23 -0
- package/src/Framework/ThirdParty/Rpc.ts +75 -0
- package/src/Framework/ThirdParty/WechatOATool.ts +61 -0
- package/src/Framework/ThirdParty/WechatTool.ts +80 -0
- package/src/Framework/WebServer/Controller/BaseController.ts +140 -0
- package/src/Framework/WebServer/Controller/BaseUserController.ts +209 -0
- package/src/Framework/WebServer/Controller/MongoBaseUserController.ts +209 -0
- package/src/Framework/WebServer/Decorator/AdminValidate.ts +19 -0
- package/src/Framework/WebServer/Decorator/AuthorityValidate.ts +25 -0
- package/src/Framework/WebServer/Decorator/CreatorValidate.ts +19 -0
- package/src/Framework/WebServer/Decorator/JsonAdminValidate.ts +16 -0
- package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
- package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.ts +23 -0
- package/src/Framework/WebServer/Decorator/JsonCreatorValidate.ts +19 -0
- package/src/Framework/WebServer/Decorator/SyncCall.ts +20 -0
- package/src/Framework/WebServer/Decorator/SyncCallServer.ts +45 -0
- package/src/Framework/WebServer/Engine/ControllerManager.ts +134 -0
- package/src/Framework/WebServer/Engine/Engine.ts +186 -0
- package/src/Framework/WebServer/Engine/RazorJs.ts +720 -0
- package/src/Framework/WebServer/Engine/Request.ts +267 -0
- package/src/Framework/WebServer/Engine/Response.ts +123 -0
- package/src/Framework/WebServer/IWebServer.ts +61 -0
- package/src/Framework/cgserver.ts +112 -0
- package/src/Framework/index.ts +92 -0
- package/src/test/test.ts +12 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { GMysqlMgr } from '../Database/MysqlManager';
|
|
2
|
+
import { GRedisMgr } from '../Database/RedisManager';
|
|
3
|
+
import { IClientWebSocket } from './IClientWebSocket';
|
|
4
|
+
import * as ws from 'websocket';
|
|
5
|
+
import { GLog } from './../Logic/Log';
|
|
6
|
+
import * as fs from "fs";
|
|
7
|
+
import * as http from "http";
|
|
8
|
+
import * as https from "https";
|
|
9
|
+
import { GMongoMgr } from '../Database/MongoManager';
|
|
10
|
+
import { GMSSqlMgr } from '../Database/MSSqlManager';
|
|
11
|
+
import { GEventTool } from '../Logic/EventTool';
|
|
12
|
+
import { GServerCfg, IServerConfig } from '../Config/IServerConfig';
|
|
13
|
+
import { GCgServer } from '../cgserver';
|
|
14
|
+
import { BaseMsg } from './IWebSocket';
|
|
15
|
+
|
|
16
|
+
export class ISocketServer
|
|
17
|
+
{
|
|
18
|
+
protected _cfg:IServerConfig=null
|
|
19
|
+
//方便提示
|
|
20
|
+
get cfg()
|
|
21
|
+
{
|
|
22
|
+
return this._cfg
|
|
23
|
+
}
|
|
24
|
+
//服务器已被关闭
|
|
25
|
+
protected _is_closed=false
|
|
26
|
+
get isClosed()
|
|
27
|
+
{
|
|
28
|
+
return this._is_closed
|
|
29
|
+
}
|
|
30
|
+
get name()
|
|
31
|
+
{
|
|
32
|
+
return this._cfg.serverName
|
|
33
|
+
}
|
|
34
|
+
//监听websocket
|
|
35
|
+
private _listening_websocket:ws.server= null
|
|
36
|
+
get listeningWebSocket()
|
|
37
|
+
{
|
|
38
|
+
return this._listening_websocket
|
|
39
|
+
}
|
|
40
|
+
//来自于用户的链接
|
|
41
|
+
protected _ws_clients:{[socketid:number]:IClientWebSocket}={}
|
|
42
|
+
get listenPort()
|
|
43
|
+
{
|
|
44
|
+
return this._cfg.port
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* websocket can accepted protocol
|
|
48
|
+
*/
|
|
49
|
+
protected _accepted_protocol=null
|
|
50
|
+
//服务器管理相关
|
|
51
|
+
/*
|
|
52
|
+
item=servername:class
|
|
53
|
+
*/
|
|
54
|
+
protected _name_vs_class={}
|
|
55
|
+
registerWebSocketHandleClass(name:string,cls)
|
|
56
|
+
{
|
|
57
|
+
if(!name||name=="")
|
|
58
|
+
{
|
|
59
|
+
throw "registerWebSocketHandleClass name must be not null or empty!"
|
|
60
|
+
}
|
|
61
|
+
this._name_vs_class[name] = cls
|
|
62
|
+
}
|
|
63
|
+
constructor(cfg:IServerConfig)
|
|
64
|
+
{
|
|
65
|
+
this._cfg=cfg
|
|
66
|
+
}
|
|
67
|
+
removeServerWebSocketBySocketId(socketId:number)
|
|
68
|
+
{
|
|
69
|
+
this._ws_clients[socketId] = null
|
|
70
|
+
delete this._ws_clients[socketId]
|
|
71
|
+
}
|
|
72
|
+
async run()
|
|
73
|
+
{
|
|
74
|
+
GCgServer.addSocketServer(this)
|
|
75
|
+
await GMSSqlMgr.init()
|
|
76
|
+
await GMysqlMgr.init()
|
|
77
|
+
await GRedisMgr.init(GServerCfg.db?.redis)
|
|
78
|
+
await GMongoMgr.init(GServerCfg.db?.mongo)
|
|
79
|
+
this.initWebSocket()
|
|
80
|
+
}
|
|
81
|
+
stop()
|
|
82
|
+
{
|
|
83
|
+
this._is_closed=true
|
|
84
|
+
this._listening_websocket.closeAllConnections()
|
|
85
|
+
}
|
|
86
|
+
/*
|
|
87
|
+
把所有的客户端链接保存起来
|
|
88
|
+
方便统计,广播等
|
|
89
|
+
*/
|
|
90
|
+
addClient(ws_client:IClientWebSocket)
|
|
91
|
+
{
|
|
92
|
+
this._ws_clients[ws_client.socketId] = ws_client
|
|
93
|
+
}
|
|
94
|
+
isOriginAllowed(origin)
|
|
95
|
+
{
|
|
96
|
+
return true
|
|
97
|
+
}
|
|
98
|
+
initWebSocket(wss?)
|
|
99
|
+
{
|
|
100
|
+
let server = null
|
|
101
|
+
if(wss)
|
|
102
|
+
{
|
|
103
|
+
console.log("wss:---")
|
|
104
|
+
let options =
|
|
105
|
+
{
|
|
106
|
+
key:fs.readFileSync("ssl/ssl2.key"),
|
|
107
|
+
cert: fs.readFileSync("ssl/ssl2.crt"),
|
|
108
|
+
//passphrase:'1234'//如果秘钥文件有密码的话,用这个属性设置密码
|
|
109
|
+
}
|
|
110
|
+
server = https.createServer(options,(request, response)=>
|
|
111
|
+
{
|
|
112
|
+
GLog.info((new Date()) + 'wss Received request for ' + request.url)
|
|
113
|
+
response.writeHead(404)
|
|
114
|
+
response.end()
|
|
115
|
+
})
|
|
116
|
+
}
|
|
117
|
+
else
|
|
118
|
+
{
|
|
119
|
+
server = http.createServer((request, response)=>
|
|
120
|
+
{
|
|
121
|
+
GLog.info((new Date()) + 'ws Received request for ' + request.url)
|
|
122
|
+
response.writeHead(404)
|
|
123
|
+
response.end()
|
|
124
|
+
})
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
server.listen(this._cfg.port, this.onListenning.bind(this))
|
|
128
|
+
|
|
129
|
+
this._listening_websocket = new ws.server({
|
|
130
|
+
httpServer: server,
|
|
131
|
+
// You should not use autoAcceptConnections for production
|
|
132
|
+
// applications, as it defeats all standard cross-origin protection
|
|
133
|
+
// facilities built into the protocol and the browser. You should
|
|
134
|
+
// *always* verify the connection's origin and decide whether or not
|
|
135
|
+
// to accept it.
|
|
136
|
+
autoAcceptConnections: false
|
|
137
|
+
})
|
|
138
|
+
this._listening_websocket.on('request', this.onRequest.bind(this))
|
|
139
|
+
this._listening_websocket.on('close', this.onClose.bind(this))
|
|
140
|
+
}
|
|
141
|
+
onClose(connection: ws.connection, reason: number, desc: string)
|
|
142
|
+
{
|
|
143
|
+
|
|
144
|
+
}
|
|
145
|
+
onListenning()
|
|
146
|
+
{
|
|
147
|
+
GEventTool.emit("socket_server_init_done")
|
|
148
|
+
let info = (new Date()) + " Server "+ this.name +" is listening on port "+this._cfg.port
|
|
149
|
+
GLog.info(info)
|
|
150
|
+
console.log(info)
|
|
151
|
+
}
|
|
152
|
+
onRequest(req:ws.request)
|
|
153
|
+
{
|
|
154
|
+
if(this._is_closed)
|
|
155
|
+
{
|
|
156
|
+
return
|
|
157
|
+
}
|
|
158
|
+
let protocol = null
|
|
159
|
+
if(req.requestedProtocols.length>0)
|
|
160
|
+
{
|
|
161
|
+
protocol = req.requestedProtocols[0]
|
|
162
|
+
}
|
|
163
|
+
let allowed = this.isOriginAllowed(req.origin)
|
|
164
|
+
if (!allowed)
|
|
165
|
+
{
|
|
166
|
+
req.reject()
|
|
167
|
+
GLog.info(' Connection from origin ' + req.origin + ' rejected.')
|
|
168
|
+
return
|
|
169
|
+
}
|
|
170
|
+
try
|
|
171
|
+
{
|
|
172
|
+
let conn = req.accept(this._accepted_protocol, req.origin)
|
|
173
|
+
if(!conn)
|
|
174
|
+
{
|
|
175
|
+
GLog.info(' protocol reject')
|
|
176
|
+
return
|
|
177
|
+
}
|
|
178
|
+
GLog.info((new Date()) + ' Connection accepted.')
|
|
179
|
+
let server_name = this._getServerNameByCookies(req.cookies)
|
|
180
|
+
this.createWebSocketObjectByProtocol(server_name,conn)
|
|
181
|
+
}
|
|
182
|
+
catch(e)
|
|
183
|
+
{
|
|
184
|
+
GLog.info(' protocol reject')
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
createWebSocketObjectByProtocol(server_name:string,_ws:ws.connection):IClientWebSocket
|
|
188
|
+
{
|
|
189
|
+
server_name=server_name||"default"
|
|
190
|
+
let cls = this._name_vs_class[server_name]
|
|
191
|
+
if(!cls)
|
|
192
|
+
{
|
|
193
|
+
GLog.error("(createWebSocketObjectByProtocol in server("+this.name+"))no this websocket handle class="+server_name)
|
|
194
|
+
return null
|
|
195
|
+
}
|
|
196
|
+
let ws_server = <IClientWebSocket>(new cls(this))
|
|
197
|
+
this.addClient(ws_server)
|
|
198
|
+
ws_server.onConnect(_ws)
|
|
199
|
+
return ws_server
|
|
200
|
+
}
|
|
201
|
+
protected _getServerNameByCookies(cookies)
|
|
202
|
+
{
|
|
203
|
+
let server_name = ""
|
|
204
|
+
if(!cookies)
|
|
205
|
+
{
|
|
206
|
+
return server_name
|
|
207
|
+
}
|
|
208
|
+
for(let index in cookies)
|
|
209
|
+
{
|
|
210
|
+
let cookie = cookies[index]
|
|
211
|
+
if(cookie.name=="server")
|
|
212
|
+
{
|
|
213
|
+
server_name = cookie.value
|
|
214
|
+
break
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return server_name
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* 广播消息
|
|
221
|
+
* @param msg
|
|
222
|
+
*/
|
|
223
|
+
broadCast(msg:BaseMsg)
|
|
224
|
+
{
|
|
225
|
+
for(var key in this._ws_clients)
|
|
226
|
+
{
|
|
227
|
+
let ws = this._ws_clients[key] as IClientWebSocket
|
|
228
|
+
ws.send(msg)
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* 获取任意客户端连接
|
|
233
|
+
* @returns
|
|
234
|
+
*/
|
|
235
|
+
getAnyWebSocket()
|
|
236
|
+
{
|
|
237
|
+
for(var key in this._ws_clients)
|
|
238
|
+
{
|
|
239
|
+
return this._ws_clients[key] as IClientWebSocket
|
|
240
|
+
}
|
|
241
|
+
return null
|
|
242
|
+
}
|
|
243
|
+
}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { GLog } from '../Logic/Log';
|
|
2
|
+
import { GProtoFactory } from './ProtoFilter/ProtoFactory';
|
|
3
|
+
import { IProtoFilter,EProtoType } from "./ProtoFilter/IProtoFilter";
|
|
4
|
+
import * as ws from 'websocket';
|
|
5
|
+
import { core } from '../Core/Core';
|
|
6
|
+
import * as _ from "underscore";
|
|
7
|
+
import { GServerCfg } from '../Config/IServerConfig';
|
|
8
|
+
import { GSyncQueueTool } from '../Logic/SyncQueueTool';
|
|
9
|
+
|
|
10
|
+
export class BaseMsg
|
|
11
|
+
{
|
|
12
|
+
cmd: string
|
|
13
|
+
errcode?: {id:number,des:string}
|
|
14
|
+
servertime=Date.now()
|
|
15
|
+
constructor(cmd:string,errcode?: {id:number,des:string})
|
|
16
|
+
{
|
|
17
|
+
this.cmd=cmd
|
|
18
|
+
this.errcode=errcode
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class IWebSocket
|
|
22
|
+
{
|
|
23
|
+
/**
|
|
24
|
+
* 是否同步消息
|
|
25
|
+
* 默认为true
|
|
26
|
+
*/
|
|
27
|
+
protected _is_sync_msg = true
|
|
28
|
+
get isSynMsg()
|
|
29
|
+
{
|
|
30
|
+
return this._is_sync_msg
|
|
31
|
+
}
|
|
32
|
+
protected _debug_msg:boolean=false
|
|
33
|
+
get debug_msg()
|
|
34
|
+
{
|
|
35
|
+
return this._debug_msg
|
|
36
|
+
}
|
|
37
|
+
set debug_msg(value)
|
|
38
|
+
{
|
|
39
|
+
this._debug_msg = value
|
|
40
|
+
}
|
|
41
|
+
protected _socket_id: number=0
|
|
42
|
+
get socketId():number
|
|
43
|
+
{
|
|
44
|
+
return this._socket_id
|
|
45
|
+
}
|
|
46
|
+
protected _tipKey:string=""
|
|
47
|
+
get tipKey()
|
|
48
|
+
{
|
|
49
|
+
return this._tipKey
|
|
50
|
+
}
|
|
51
|
+
protected _ws:ws.connection =null
|
|
52
|
+
protected _protoType:EProtoType=EProtoType.Json
|
|
53
|
+
protected _protoFilter:IProtoFilter=null
|
|
54
|
+
protected _protoPath=""
|
|
55
|
+
|
|
56
|
+
protected _ip:string = null
|
|
57
|
+
get remoteHost()
|
|
58
|
+
{
|
|
59
|
+
if(!this._ip)
|
|
60
|
+
{
|
|
61
|
+
this._ip = this._ws.remoteAddress
|
|
62
|
+
this._ip = this._ip.substring(this._ip.lastIndexOf(":")+1)
|
|
63
|
+
}
|
|
64
|
+
return this._ip
|
|
65
|
+
}
|
|
66
|
+
get connected()
|
|
67
|
+
{
|
|
68
|
+
if (this._ws
|
|
69
|
+
&&this._ws.connected==true)
|
|
70
|
+
{
|
|
71
|
+
return true
|
|
72
|
+
}
|
|
73
|
+
return false
|
|
74
|
+
}
|
|
75
|
+
constructor(protoType=EProtoType.Json,protoPath="")
|
|
76
|
+
{
|
|
77
|
+
this._debug_msg = GServerCfg.debug_msg
|
|
78
|
+
this._socket_id = parseInt(_.uniqueId())
|
|
79
|
+
this._protoType=protoType
|
|
80
|
+
this._protoPath=protoPath
|
|
81
|
+
}
|
|
82
|
+
getNewMsg(cmd:string, errcode?:{id:number,des:string}):BaseMsg|any
|
|
83
|
+
{
|
|
84
|
+
let msg = new BaseMsg(cmd,errcode)
|
|
85
|
+
return msg
|
|
86
|
+
}
|
|
87
|
+
receive_heartbeat(jsonData)
|
|
88
|
+
{
|
|
89
|
+
this.send_heartbeat()
|
|
90
|
+
}
|
|
91
|
+
send_heartbeat()
|
|
92
|
+
{
|
|
93
|
+
let msg = this.getNewMsg("heartbeat")
|
|
94
|
+
this.send(msg)
|
|
95
|
+
}
|
|
96
|
+
onConnect(_ws:ws.connection)
|
|
97
|
+
{
|
|
98
|
+
this._ws = _ws
|
|
99
|
+
if(!this._protoFilter)
|
|
100
|
+
{
|
|
101
|
+
this._protoFilter = GProtoFactory.createFilter(this._protoType)
|
|
102
|
+
this._protoFilter.init(this._protoPath)
|
|
103
|
+
}
|
|
104
|
+
this._ws.on("message",this.onMessage.bind(this))
|
|
105
|
+
this._ws.on("error",this.onError.bind(this))
|
|
106
|
+
this._ws.on("close",this.onClose.bind(this))
|
|
107
|
+
this.onOpen()
|
|
108
|
+
}
|
|
109
|
+
onMessage(message:ws.Message)
|
|
110
|
+
{
|
|
111
|
+
try
|
|
112
|
+
{
|
|
113
|
+
let msg = this._onDecode(message)
|
|
114
|
+
if(this._is_sync_msg)
|
|
115
|
+
{
|
|
116
|
+
GSyncQueueTool.add(this._socket_id+"",this._onMessage,this,msg)
|
|
117
|
+
}
|
|
118
|
+
else
|
|
119
|
+
{
|
|
120
|
+
this._onMessage(msg)
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (e)
|
|
124
|
+
{
|
|
125
|
+
GLog.error(this.tipKey+' Received Message Handle Error: ' + e)
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
protected _onDecode(message:ws.Message,...params)
|
|
129
|
+
{
|
|
130
|
+
let msg=null
|
|
131
|
+
if (message.type === 'utf8')
|
|
132
|
+
{
|
|
133
|
+
msg=this._protoFilter.decode(message.utf8Data,...params)
|
|
134
|
+
}
|
|
135
|
+
else if (message.type === 'binary')
|
|
136
|
+
{
|
|
137
|
+
msg=this._protoFilter.decode(message.binaryData,...params)
|
|
138
|
+
}
|
|
139
|
+
return msg
|
|
140
|
+
}
|
|
141
|
+
protected _onEncode(data,...params)
|
|
142
|
+
{
|
|
143
|
+
let msg = this._protoFilter.encode(data,...params)
|
|
144
|
+
return msg
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* 过滤消息,每个消息处理之前调用
|
|
148
|
+
* @param msg
|
|
149
|
+
* @returns
|
|
150
|
+
*/
|
|
151
|
+
filterMsg(msg:BaseMsg)
|
|
152
|
+
{
|
|
153
|
+
if(!msg)
|
|
154
|
+
{
|
|
155
|
+
GLog.error({tipKey:this.tipKey,action:"receive",error:"no cmd",msg})
|
|
156
|
+
return false
|
|
157
|
+
}
|
|
158
|
+
if(this._debug_msg && msg.cmd!="heartbeat")
|
|
159
|
+
{
|
|
160
|
+
GLog.info({tipKey:this.tipKey,action:"receive",msg})
|
|
161
|
+
}
|
|
162
|
+
if (!msg.cmd)
|
|
163
|
+
{
|
|
164
|
+
GLog.error({tipKey:this.tipKey,action:"receive",error:"no cmd",msg})
|
|
165
|
+
return false
|
|
166
|
+
}
|
|
167
|
+
return true
|
|
168
|
+
}
|
|
169
|
+
protected async _onMessage(data)
|
|
170
|
+
{
|
|
171
|
+
let jsonData = data
|
|
172
|
+
let func:Function = this["receive_"+jsonData.cmd]
|
|
173
|
+
let ret = this.filterMsg(jsonData)
|
|
174
|
+
if(!ret)
|
|
175
|
+
{
|
|
176
|
+
return
|
|
177
|
+
}
|
|
178
|
+
else if (!func)
|
|
179
|
+
{
|
|
180
|
+
let otherfunc:Function=this["receive_other_all"]
|
|
181
|
+
if(otherfunc)
|
|
182
|
+
{
|
|
183
|
+
await core.safeCall(otherfunc,this,jsonData)
|
|
184
|
+
}
|
|
185
|
+
else
|
|
186
|
+
{
|
|
187
|
+
GLog.error(this.tipKey+' Received Message warning: no cmd handle,cmd=' + jsonData.cmd)
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else
|
|
191
|
+
{
|
|
192
|
+
await core.safeCall(func,this,jsonData)
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
onOpen(e?)
|
|
196
|
+
{
|
|
197
|
+
|
|
198
|
+
}
|
|
199
|
+
onError(e:Error)
|
|
200
|
+
{
|
|
201
|
+
|
|
202
|
+
}
|
|
203
|
+
onClose(reasonCode:number, description:string)
|
|
204
|
+
{
|
|
205
|
+
GLog.info(this.tipKey+" onClose resonCode="+reasonCode+" des="+description)
|
|
206
|
+
}
|
|
207
|
+
send(msg:BaseMsg)
|
|
208
|
+
{
|
|
209
|
+
if (!this.connected)
|
|
210
|
+
{
|
|
211
|
+
return
|
|
212
|
+
}
|
|
213
|
+
if (!msg)
|
|
214
|
+
{
|
|
215
|
+
GLog.error(this.tipKey+" Send Message warning:null data!")
|
|
216
|
+
return
|
|
217
|
+
}
|
|
218
|
+
if(this._debug_msg
|
|
219
|
+
&&msg.cmd!="heartbeat")
|
|
220
|
+
{
|
|
221
|
+
GLog.info({tipKey:this.tipKey,action:"send",msg})
|
|
222
|
+
}
|
|
223
|
+
let data = this._onEncode(msg)
|
|
224
|
+
this._ws.send(data)
|
|
225
|
+
}
|
|
226
|
+
close()
|
|
227
|
+
{
|
|
228
|
+
this._ws.close()
|
|
229
|
+
}
|
|
230
|
+
getServerNameFromCmd(cmd)
|
|
231
|
+
{
|
|
232
|
+
if(!cmd||!core.isString(cmd))
|
|
233
|
+
{
|
|
234
|
+
return null
|
|
235
|
+
}
|
|
236
|
+
let index = cmd.indexOf("_")
|
|
237
|
+
if(index<=0)
|
|
238
|
+
{
|
|
239
|
+
return null
|
|
240
|
+
}
|
|
241
|
+
return cmd.substring(0,index)
|
|
242
|
+
}
|
|
243
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { IProtoFilter } from './IProtoFilter';
|
|
2
|
+
import { core } from '../../Core/Core';
|
|
3
|
+
import { GLog } from '../../Logic/Log';
|
|
4
|
+
import * as protobufjs from 'protobufjs';
|
|
5
|
+
|
|
6
|
+
export class GoogleProtoFilter implements IProtoFilter
|
|
7
|
+
{
|
|
8
|
+
protected _root:protobufjs.Root=new protobufjs.Root()
|
|
9
|
+
protected _inited=false
|
|
10
|
+
init(path?:string):boolean
|
|
11
|
+
{
|
|
12
|
+
if(this._inited)
|
|
13
|
+
{
|
|
14
|
+
return
|
|
15
|
+
}
|
|
16
|
+
this._inited=true
|
|
17
|
+
try
|
|
18
|
+
{
|
|
19
|
+
this._root.loadSync(path,{keepCase:true})
|
|
20
|
+
}
|
|
21
|
+
catch(e)
|
|
22
|
+
{
|
|
23
|
+
GLog.error(e)
|
|
24
|
+
return false
|
|
25
|
+
}
|
|
26
|
+
return true
|
|
27
|
+
}
|
|
28
|
+
encode(data,root:string)
|
|
29
|
+
{
|
|
30
|
+
let msg={cmd:data.cmd}
|
|
31
|
+
msg[msg.cmd]=data
|
|
32
|
+
msg[msg.cmd].cmd=undefined
|
|
33
|
+
|
|
34
|
+
msg["errcode"]=data.errcode
|
|
35
|
+
msg["tip"]=data.tip
|
|
36
|
+
data.errcode=undefined
|
|
37
|
+
|
|
38
|
+
delete data.errcode
|
|
39
|
+
delete msg[msg.cmd].cmd
|
|
40
|
+
|
|
41
|
+
let body = this._root.lookupType(root)
|
|
42
|
+
var errMsg = body.verify(msg)
|
|
43
|
+
if (errMsg)
|
|
44
|
+
throw Error(errMsg)
|
|
45
|
+
var msgBody = body.create(msg);
|
|
46
|
+
var bufferBody = body.encode(msgBody).finish();
|
|
47
|
+
return bufferBody
|
|
48
|
+
}
|
|
49
|
+
decode(data,root:string)
|
|
50
|
+
{
|
|
51
|
+
let body = this._root.lookupType(root)
|
|
52
|
+
if(!body)
|
|
53
|
+
{
|
|
54
|
+
GLog.info("proto body not in proto(!"+root+")")
|
|
55
|
+
return null
|
|
56
|
+
}
|
|
57
|
+
let msgBody = body.decode(data)
|
|
58
|
+
if(!msgBody)
|
|
59
|
+
{
|
|
60
|
+
GLog.info("proto body decode wrong!")
|
|
61
|
+
return null
|
|
62
|
+
}
|
|
63
|
+
let objBody = body.toObject(msgBody)
|
|
64
|
+
let obj = objBody[objBody.cmd]
|
|
65
|
+
obj.cmd=objBody.cmd
|
|
66
|
+
return obj
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { IProtoFilter } from './IProtoFilter';
|
|
2
|
+
import { core } from '../../Core/Core';
|
|
3
|
+
import { GLog } from '../../Logic/Log';
|
|
4
|
+
export class JsonProtoFilter implements IProtoFilter
|
|
5
|
+
{
|
|
6
|
+
init(path?:string)
|
|
7
|
+
{
|
|
8
|
+
return true
|
|
9
|
+
}
|
|
10
|
+
encode(data)
|
|
11
|
+
{
|
|
12
|
+
if(!core.isString(data))
|
|
13
|
+
{
|
|
14
|
+
data = JSON.stringify(data)
|
|
15
|
+
}
|
|
16
|
+
return data
|
|
17
|
+
}
|
|
18
|
+
decode(data)
|
|
19
|
+
{
|
|
20
|
+
try
|
|
21
|
+
{
|
|
22
|
+
if(core.isString(data))
|
|
23
|
+
{
|
|
24
|
+
data = JSON.parse(data)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch(e)
|
|
28
|
+
{
|
|
29
|
+
GLog.error("decode json data Failed-----data="+data)
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
return data
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { GoogleProtoFilter } from './GoogleProtoFilter';
|
|
2
|
+
import { JsonProtoFilter } from './JsonProtoFilter';
|
|
3
|
+
import { IProtoFilter } from './IProtoFilter';
|
|
4
|
+
import { EProtoType } from "./IProtoFilter";
|
|
5
|
+
|
|
6
|
+
export let GProtoFactory:ProtoFactory=null
|
|
7
|
+
class ProtoFactory
|
|
8
|
+
{
|
|
9
|
+
protected _filters=new Map<EProtoType,IProtoFilter>()
|
|
10
|
+
createFilter(type:EProtoType):IProtoFilter
|
|
11
|
+
{
|
|
12
|
+
let filter = this._filters.get(type)
|
|
13
|
+
if(filter)
|
|
14
|
+
{
|
|
15
|
+
return filter
|
|
16
|
+
}
|
|
17
|
+
switch(type)
|
|
18
|
+
{
|
|
19
|
+
case EProtoType.GoogleProtoBuffer:
|
|
20
|
+
{
|
|
21
|
+
filter = new GoogleProtoFilter()
|
|
22
|
+
break
|
|
23
|
+
}
|
|
24
|
+
default:
|
|
25
|
+
{
|
|
26
|
+
filter = new JsonProtoFilter()
|
|
27
|
+
break
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
this._filters.set(type,filter)
|
|
31
|
+
return filter
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
GProtoFactory=new ProtoFactory()
|