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.
Files changed (547) hide show
  1. package/dist/Framework/AI/AiObject.js +11 -0
  2. package/dist/Framework/AI/AiObject.js.map +1 -0
  3. package/dist/Framework/AI/Astar.js +134 -0
  4. package/dist/Framework/AI/Astar.js.map +1 -0
  5. package/dist/Framework/AI/BehaviorAI.js +309 -0
  6. package/dist/Framework/AI/BehaviorAI.js.map +1 -0
  7. package/dist/Framework/AI/Entity.js +34 -0
  8. package/dist/Framework/AI/Entity.js.map +1 -0
  9. package/dist/Framework/AI/Point.js +69 -0
  10. package/dist/Framework/AI/Point.js.map +1 -0
  11. package/dist/Framework/AI/TriggerMgr.js +202 -0
  12. package/dist/Framework/AI/TriggerMgr.js.map +1 -0
  13. package/dist/Framework/Config/Config.js +55 -0
  14. package/dist/Framework/Config/Config.js.map +1 -0
  15. package/dist/Framework/Config/FrameworkConfig.js +241 -0
  16. package/dist/Framework/Config/FrameworkConfig.js.map +1 -0
  17. package/dist/Framework/Config/IServerConfig.js +27 -0
  18. package/dist/Framework/Config/IServerConfig.js.map +1 -0
  19. package/dist/Framework/Config/_error_.js +36 -0
  20. package/dist/Framework/Config/_error_.js.map +1 -0
  21. package/dist/Framework/Core/Core.js +641 -0
  22. package/dist/Framework/Core/Core.js.map +1 -0
  23. package/dist/Framework/Core/Timer.js +117 -0
  24. package/dist/Framework/Core/Timer.js.map +1 -0
  25. package/dist/Framework/Database/Decorator/AutoIncrement.js +12 -0
  26. package/dist/Framework/Database/Decorator/AutoIncrement.js.map +1 -0
  27. package/dist/Framework/Database/Decorator/DBCache.js +66 -0
  28. package/dist/Framework/Database/Decorator/DBCache.js.map +1 -0
  29. package/dist/Framework/Database/Decorator/NotNull.js +12 -0
  30. package/dist/Framework/Database/Decorator/NotNull.js.map +1 -0
  31. package/dist/Framework/Database/Decorator/PrimaryKey.js +12 -0
  32. package/dist/Framework/Database/Decorator/PrimaryKey.js.map +1 -0
  33. package/dist/Framework/Database/Decorator/Property.js +62 -0
  34. package/dist/Framework/Database/Decorator/Property.js.map +1 -0
  35. package/dist/Framework/Database/Decorator/Table.js +16 -0
  36. package/dist/Framework/Database/Decorator/Table.js.map +1 -0
  37. package/dist/Framework/Database/Decorator/Type.js +21 -0
  38. package/dist/Framework/Database/Decorator/Type.js.map +1 -0
  39. package/dist/Framework/Database/MSSqlManager.js +45 -0
  40. package/dist/Framework/Database/MSSqlManager.js.map +1 -0
  41. package/dist/Framework/Database/MongoBaseService.js +115 -0
  42. package/dist/Framework/Database/MongoBaseService.js.map +1 -0
  43. package/dist/Framework/Database/MongoManager.js +429 -0
  44. package/dist/Framework/Database/MongoManager.js.map +1 -0
  45. package/dist/Framework/Database/MysqlBaseService.js +282 -0
  46. package/dist/Framework/Database/MysqlBaseService.js.map +1 -0
  47. package/dist/Framework/Database/MysqlManager.js +182 -0
  48. package/dist/Framework/Database/MysqlManager.js.map +1 -0
  49. package/dist/Framework/Database/RedisManager.js +410 -0
  50. package/dist/Framework/Database/RedisManager.js.map +1 -0
  51. package/dist/Framework/Logic/CacheTool.js +75 -0
  52. package/dist/Framework/Logic/CacheTool.js.map +1 -0
  53. package/dist/Framework/Logic/EventTool.js +29 -0
  54. package/dist/Framework/Logic/EventTool.js.map +1 -0
  55. package/dist/Framework/Logic/HttpTool.js +77 -0
  56. package/dist/Framework/Logic/HttpTool.js.map +1 -0
  57. package/dist/Framework/Logic/Log.js +142 -0
  58. package/dist/Framework/Logic/Log.js.map +1 -0
  59. package/dist/Framework/Logic/SyncQueueTool.js +44 -0
  60. package/dist/Framework/Logic/SyncQueueTool.js.map +1 -0
  61. package/dist/Framework/Service/AccountService.js +482 -0
  62. package/dist/Framework/Service/AccountService.js.map +1 -0
  63. package/dist/Framework/Service/MongoAccountService.js +404 -0
  64. package/dist/Framework/Service/MongoAccountService.js.map +1 -0
  65. package/dist/Framework/Service/MongoCacheService.js +43 -0
  66. package/dist/Framework/Service/MongoCacheService.js.map +1 -0
  67. package/dist/Framework/Service/MongoUserService.js +95 -0
  68. package/dist/Framework/Service/MongoUserService.js.map +1 -0
  69. package/dist/Framework/Service/UserService.js +200 -0
  70. package/dist/Framework/Service/UserService.js.map +1 -0
  71. package/dist/Framework/Service/ini.js +37 -0
  72. package/dist/Framework/Service/ini.js.map +1 -0
  73. package/dist/Framework/SocketServer/IClientWebSocket.js +45 -0
  74. package/dist/Framework/SocketServer/IClientWebSocket.js.map +1 -0
  75. package/dist/Framework/SocketServer/IRpc.js +13 -0
  76. package/dist/Framework/SocketServer/IRpc.js.map +1 -0
  77. package/dist/Framework/SocketServer/IRpcClientWebSocket.js +64 -0
  78. package/dist/Framework/SocketServer/IRpcClientWebSocket.js.map +1 -0
  79. package/dist/Framework/SocketServer/IRpcServerWebSocket.js +64 -0
  80. package/dist/Framework/SocketServer/IRpcServerWebSocket.js.map +1 -0
  81. package/dist/Framework/SocketServer/IServerWebSocket.js +77 -0
  82. package/dist/Framework/SocketServer/IServerWebSocket.js.map +1 -0
  83. package/dist/Framework/SocketServer/ISocketServer.js +204 -0
  84. package/dist/Framework/SocketServer/ISocketServer.js.map +1 -0
  85. package/dist/Framework/SocketServer/IWebSocket.js +197 -0
  86. package/dist/Framework/SocketServer/IWebSocket.js.map +1 -0
  87. package/dist/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +59 -0
  88. package/dist/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js.map +1 -0
  89. package/dist/Framework/SocketServer/ProtoFilter/IProtoFilter.js +9 -0
  90. package/dist/Framework/SocketServer/ProtoFilter/IProtoFilter.js.map +1 -0
  91. package/dist/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +30 -0
  92. package/dist/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js.map +1 -0
  93. package/dist/Framework/SocketServer/ProtoFilter/ProtoFactory.js +32 -0
  94. package/dist/Framework/SocketServer/ProtoFilter/ProtoFactory.js.map +1 -0
  95. package/dist/Framework/ThirdParty/AlipayTool.js +205 -0
  96. package/dist/Framework/ThirdParty/AlipayTool.js.map +1 -0
  97. package/dist/Framework/ThirdParty/Alisms.js +47 -0
  98. package/dist/Framework/ThirdParty/Alisms.js.map +1 -0
  99. package/dist/Framework/ThirdParty/AppleTool.js +236 -0
  100. package/dist/Framework/ThirdParty/AppleTool.js.map +1 -0
  101. package/dist/Framework/ThirdParty/CgMq.js +133 -0
  102. package/dist/Framework/ThirdParty/CgMq.js.map +1 -0
  103. package/dist/Framework/ThirdParty/EmailTool.js +35 -0
  104. package/dist/Framework/ThirdParty/EmailTool.js.map +1 -0
  105. package/dist/Framework/ThirdParty/OpenSocial.js +33 -0
  106. package/dist/Framework/ThirdParty/OpenSocial.js.map +1 -0
  107. package/dist/Framework/ThirdParty/QQTool.js +117 -0
  108. package/dist/Framework/ThirdParty/QQTool.js.map +1 -0
  109. package/dist/Framework/ThirdParty/QiniuTool.js +23 -0
  110. package/dist/Framework/ThirdParty/QiniuTool.js.map +1 -0
  111. package/dist/Framework/ThirdParty/Rpc.js +64 -0
  112. package/dist/Framework/ThirdParty/Rpc.js.map +1 -0
  113. package/dist/Framework/ThirdParty/WechatOATool.js +62 -0
  114. package/dist/Framework/ThirdParty/WechatOATool.js.map +1 -0
  115. package/dist/Framework/ThirdParty/WechatTool.js +76 -0
  116. package/dist/Framework/ThirdParty/WechatTool.js.map +1 -0
  117. package/dist/Framework/WebServer/Controller/BaseController.js +113 -0
  118. package/dist/Framework/WebServer/Controller/BaseController.js.map +1 -0
  119. package/dist/Framework/WebServer/Controller/BaseUserController.js +170 -0
  120. package/dist/Framework/WebServer/Controller/BaseUserController.js.map +1 -0
  121. package/dist/Framework/WebServer/Controller/MongoBaseUserController.js +170 -0
  122. package/dist/Framework/WebServer/Controller/MongoBaseUserController.js.map +1 -0
  123. package/dist/Framework/WebServer/Decorator/AdminValidate.js +20 -0
  124. package/dist/Framework/WebServer/Decorator/AdminValidate.js.map +1 -0
  125. package/dist/Framework/WebServer/Decorator/AuthorityValidate.js +23 -0
  126. package/dist/Framework/WebServer/Decorator/AuthorityValidate.js.map +1 -0
  127. package/dist/Framework/WebServer/Decorator/CreatorValidate.js +20 -0
  128. package/dist/Framework/WebServer/Decorator/CreatorValidate.js.map +1 -0
  129. package/dist/Framework/WebServer/Decorator/JsonAdminValidate.js +16 -0
  130. package/dist/Framework/WebServer/Decorator/JsonAdminValidate.js.map +1 -0
  131. package/dist/Framework/WebServer/Decorator/JsonAuthorityValidate.js +21 -0
  132. package/dist/Framework/WebServer/Decorator/JsonAuthorityValidate.js.map +1 -0
  133. package/dist/Framework/WebServer/Decorator/JsonCreatorValidate.js +20 -0
  134. package/dist/Framework/WebServer/Decorator/JsonCreatorValidate.js.map +1 -0
  135. package/dist/Framework/WebServer/Decorator/SyncCall.js +22 -0
  136. package/dist/Framework/WebServer/Decorator/SyncCall.js.map +1 -0
  137. package/dist/Framework/WebServer/Decorator/SyncCallServer.js +42 -0
  138. package/dist/Framework/WebServer/Decorator/SyncCallServer.js.map +1 -0
  139. package/dist/Framework/WebServer/Engine/ControllerManager.js +113 -0
  140. package/dist/Framework/WebServer/Engine/ControllerManager.js.map +1 -0
  141. package/dist/Framework/WebServer/Engine/Engine.js +155 -0
  142. package/dist/Framework/WebServer/Engine/Engine.js.map +1 -0
  143. package/dist/Framework/WebServer/Engine/RazorJs.js +545 -0
  144. package/dist/Framework/WebServer/Engine/RazorJs.js.map +1 -0
  145. package/dist/Framework/WebServer/Engine/Request.js +217 -0
  146. package/dist/Framework/WebServer/Engine/Request.js.map +1 -0
  147. package/dist/Framework/WebServer/Engine/Response.js +102 -0
  148. package/dist/Framework/WebServer/Engine/Response.js.map +1 -0
  149. package/dist/Framework/WebServer/IWebServer.js +55 -0
  150. package/dist/Framework/WebServer/IWebServer.js.map +1 -0
  151. package/dist/Framework/cgserver.js +88 -0
  152. package/dist/Framework/cgserver.js.map +1 -0
  153. package/dist/Framework/index.js +184 -0
  154. package/dist/Framework/index.js.map +1 -0
  155. package/dist/lib/AI/AiObject.js +9 -6
  156. package/dist/lib/AI/Astar.js +52 -45
  157. package/dist/lib/AI/BehaviorAI.js +64 -69
  158. package/dist/lib/AI/Entity.js +38 -23
  159. package/dist/lib/AI/Point.js +37 -34
  160. package/dist/lib/AI/TriggerMgr.js +66 -60
  161. package/dist/lib/Config/Config.js +22 -21
  162. package/dist/lib/Config/FrameworkConfig.js +235 -214
  163. package/dist/lib/Config/IServerConfig.js +38 -16
  164. package/dist/lib/Config/_error_.js +29 -27
  165. package/dist/lib/Core/Core.js +358 -287
  166. package/dist/lib/Core/Timer.js +94 -61
  167. package/dist/lib/Database/Decorator/AutoIncrement.js +4 -4
  168. package/dist/lib/Database/Decorator/DBCache.js +108 -54
  169. package/dist/lib/Database/Decorator/NotNull.js +4 -4
  170. package/dist/lib/Database/Decorator/PrimaryKey.js +4 -4
  171. package/dist/lib/Database/Decorator/Property.js +48 -39
  172. package/dist/lib/Database/Decorator/Table.js +3 -3
  173. package/dist/lib/Database/Decorator/Type.js +6 -6
  174. package/dist/lib/Database/MSSqlManager.js +99 -36
  175. package/dist/lib/Database/MongoBaseService.js +270 -91
  176. package/dist/lib/Database/MongoManager.js +625 -382
  177. package/dist/lib/Database/MysqlBaseService.js +462 -265
  178. package/dist/lib/Database/MysqlManager.js +164 -94
  179. package/dist/lib/Database/RedisManager.js +219 -152
  180. package/dist/lib/Framework/AI/AiObject.js +10 -0
  181. package/dist/lib/Framework/AI/AiObject.js.map +1 -0
  182. package/dist/lib/Framework/AI/Astar.js +133 -0
  183. package/dist/lib/Framework/AI/Astar.js.map +1 -0
  184. package/dist/lib/Framework/AI/BehaviorAI.js +307 -0
  185. package/dist/lib/Framework/AI/BehaviorAI.js.map +1 -0
  186. package/dist/lib/Framework/AI/Entity.js +33 -0
  187. package/dist/lib/Framework/AI/Entity.js.map +1 -0
  188. package/dist/lib/Framework/AI/Point.js +68 -0
  189. package/dist/lib/Framework/AI/Point.js.map +1 -0
  190. package/dist/lib/Framework/AI/TriggerMgr.js +201 -0
  191. package/dist/lib/Framework/AI/TriggerMgr.js.map +1 -0
  192. package/dist/lib/Framework/Config/Config.js +53 -0
  193. package/dist/lib/Framework/Config/Config.js.map +1 -0
  194. package/dist/lib/Framework/Config/FrameworkConfig.js +240 -0
  195. package/dist/lib/Framework/Config/FrameworkConfig.js.map +1 -0
  196. package/dist/lib/Framework/Config/IServerConfig.js +26 -0
  197. package/dist/lib/Framework/Config/IServerConfig.js.map +1 -0
  198. package/dist/lib/Framework/Config/_error_.js +35 -0
  199. package/dist/lib/Framework/Config/_error_.js.map +1 -0
  200. package/dist/lib/Framework/Core/Core.js +639 -0
  201. package/dist/lib/Framework/Core/Core.js.map +1 -0
  202. package/dist/lib/Framework/Core/Timer.js +116 -0
  203. package/dist/lib/Framework/Core/Timer.js.map +1 -0
  204. package/dist/lib/Framework/Database/Decorator/AutoIncrement.js +11 -0
  205. package/dist/lib/Framework/Database/Decorator/AutoIncrement.js.map +1 -0
  206. package/dist/lib/Framework/Database/Decorator/DBCache.js +64 -0
  207. package/dist/lib/Framework/Database/Decorator/DBCache.js.map +1 -0
  208. package/dist/lib/Framework/Database/Decorator/NotNull.js +11 -0
  209. package/dist/lib/Framework/Database/Decorator/NotNull.js.map +1 -0
  210. package/dist/lib/Framework/Database/Decorator/PrimaryKey.js +11 -0
  211. package/dist/lib/Framework/Database/Decorator/PrimaryKey.js.map +1 -0
  212. package/dist/lib/Framework/Database/Decorator/Property.js +61 -0
  213. package/dist/lib/Framework/Database/Decorator/Property.js.map +1 -0
  214. package/dist/lib/Framework/Database/Decorator/Table.js +15 -0
  215. package/dist/lib/Framework/Database/Decorator/Table.js.map +1 -0
  216. package/dist/lib/Framework/Database/Decorator/Type.js +20 -0
  217. package/dist/lib/Framework/Database/Decorator/Type.js.map +1 -0
  218. package/dist/lib/Framework/Database/MSSqlManager.js +43 -0
  219. package/dist/lib/Framework/Database/MSSqlManager.js.map +1 -0
  220. package/dist/lib/Framework/Database/MongoBaseService.js +114 -0
  221. package/dist/lib/Framework/Database/MongoBaseService.js.map +1 -0
  222. package/dist/lib/Framework/Database/MongoManager.js +427 -0
  223. package/dist/lib/Framework/Database/MongoManager.js.map +1 -0
  224. package/dist/lib/Framework/Database/MysqlBaseService.js +281 -0
  225. package/dist/lib/Framework/Database/MysqlBaseService.js.map +1 -0
  226. package/dist/lib/Framework/Database/MysqlManager.js +180 -0
  227. package/dist/lib/Framework/Database/MysqlManager.js.map +1 -0
  228. package/dist/lib/Framework/Database/RedisManager.js +408 -0
  229. package/dist/lib/Framework/Database/RedisManager.js.map +1 -0
  230. package/dist/lib/Framework/Logic/CacheTool.js +73 -0
  231. package/dist/lib/Framework/Logic/CacheTool.js.map +1 -0
  232. package/dist/lib/Framework/Logic/EventTool.js +27 -0
  233. package/dist/lib/Framework/Logic/EventTool.js.map +1 -0
  234. package/dist/lib/Framework/Logic/HttpTool.js +75 -0
  235. package/dist/lib/Framework/Logic/HttpTool.js.map +1 -0
  236. package/dist/lib/Framework/Logic/Log.js +140 -0
  237. package/dist/lib/Framework/Logic/Log.js.map +1 -0
  238. package/dist/lib/Framework/Logic/SyncQueueTool.js +43 -0
  239. package/dist/lib/Framework/Logic/SyncQueueTool.js.map +1 -0
  240. package/dist/lib/Framework/Service/AccountService.js +473 -0
  241. package/dist/lib/Framework/Service/AccountService.js.map +1 -0
  242. package/dist/lib/Framework/Service/MongoAccountService.js +403 -0
  243. package/dist/lib/Framework/Service/MongoAccountService.js.map +1 -0
  244. package/dist/lib/Framework/Service/MongoCacheService.js +42 -0
  245. package/dist/lib/Framework/Service/MongoCacheService.js.map +1 -0
  246. package/dist/lib/Framework/Service/MongoUserService.js +93 -0
  247. package/dist/lib/Framework/Service/MongoUserService.js.map +1 -0
  248. package/dist/lib/Framework/Service/UserService.js +184 -0
  249. package/dist/lib/Framework/Service/UserService.js.map +1 -0
  250. package/dist/lib/Framework/Service/ini.js +36 -0
  251. package/dist/lib/Framework/Service/ini.js.map +1 -0
  252. package/dist/lib/Framework/SocketServer/IClientWebSocket.js +44 -0
  253. package/dist/lib/Framework/SocketServer/IClientWebSocket.js.map +1 -0
  254. package/dist/lib/Framework/SocketServer/IRpc.js +12 -0
  255. package/dist/lib/Framework/SocketServer/IRpc.js.map +1 -0
  256. package/dist/lib/Framework/SocketServer/IRpcClientWebSocket.js +63 -0
  257. package/dist/lib/Framework/SocketServer/IRpcClientWebSocket.js.map +1 -0
  258. package/dist/lib/Framework/SocketServer/IRpcServerWebSocket.js +63 -0
  259. package/dist/lib/Framework/SocketServer/IRpcServerWebSocket.js.map +1 -0
  260. package/dist/lib/Framework/SocketServer/IServerWebSocket.js +75 -0
  261. package/dist/lib/Framework/SocketServer/IServerWebSocket.js.map +1 -0
  262. package/dist/lib/Framework/SocketServer/ISocketServer.js +202 -0
  263. package/dist/lib/Framework/SocketServer/ISocketServer.js.map +1 -0
  264. package/dist/lib/Framework/SocketServer/IWebSocket.js +195 -0
  265. package/dist/lib/Framework/SocketServer/IWebSocket.js.map +1 -0
  266. package/dist/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +57 -0
  267. package/dist/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js.map +1 -0
  268. package/dist/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js +8 -0
  269. package/dist/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js.map +1 -0
  270. package/dist/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +29 -0
  271. package/dist/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js.map +1 -0
  272. package/dist/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js +31 -0
  273. package/dist/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js.map +1 -0
  274. package/dist/lib/Framework/ThirdParty/AlipayTool.js +203 -0
  275. package/dist/lib/Framework/ThirdParty/AlipayTool.js.map +1 -0
  276. package/dist/lib/Framework/ThirdParty/Alisms.js +46 -0
  277. package/dist/lib/Framework/ThirdParty/Alisms.js.map +1 -0
  278. package/dist/lib/Framework/ThirdParty/AppleTool.js +234 -0
  279. package/dist/lib/Framework/ThirdParty/AppleTool.js.map +1 -0
  280. package/dist/lib/Framework/ThirdParty/CgMq.js +132 -0
  281. package/dist/lib/Framework/ThirdParty/CgMq.js.map +1 -0
  282. package/dist/lib/Framework/ThirdParty/EmailTool.js +33 -0
  283. package/dist/lib/Framework/ThirdParty/EmailTool.js.map +1 -0
  284. package/dist/lib/Framework/ThirdParty/OpenSocial.js +32 -0
  285. package/dist/lib/Framework/ThirdParty/OpenSocial.js.map +1 -0
  286. package/dist/lib/Framework/ThirdParty/QQTool.js +115 -0
  287. package/dist/lib/Framework/ThirdParty/QQTool.js.map +1 -0
  288. package/dist/lib/Framework/ThirdParty/QiniuTool.js +21 -0
  289. package/dist/lib/Framework/ThirdParty/QiniuTool.js.map +1 -0
  290. package/dist/lib/Framework/ThirdParty/Rpc.js +63 -0
  291. package/dist/lib/Framework/ThirdParty/Rpc.js.map +1 -0
  292. package/dist/lib/Framework/ThirdParty/WechatOATool.js +61 -0
  293. package/dist/lib/Framework/ThirdParty/WechatOATool.js.map +1 -0
  294. package/dist/lib/Framework/ThirdParty/WechatTool.js +74 -0
  295. package/dist/lib/Framework/ThirdParty/WechatTool.js.map +1 -0
  296. package/dist/lib/Framework/WebServer/Controller/BaseController.js +112 -0
  297. package/dist/lib/Framework/WebServer/Controller/BaseController.js.map +1 -0
  298. package/dist/lib/Framework/WebServer/Controller/BaseUserController.js +169 -0
  299. package/dist/lib/Framework/WebServer/Controller/BaseUserController.js.map +1 -0
  300. package/dist/lib/Framework/WebServer/Controller/MongoBaseUserController.js +169 -0
  301. package/dist/lib/Framework/WebServer/Controller/MongoBaseUserController.js.map +1 -0
  302. package/dist/lib/Framework/WebServer/Decorator/AdminValidate.js +19 -0
  303. package/dist/lib/Framework/WebServer/Decorator/AdminValidate.js.map +1 -0
  304. package/dist/lib/Framework/WebServer/Decorator/AuthorityValidate.js +22 -0
  305. package/dist/lib/Framework/WebServer/Decorator/AuthorityValidate.js.map +1 -0
  306. package/dist/lib/Framework/WebServer/Decorator/CreatorValidate.js +19 -0
  307. package/dist/lib/Framework/WebServer/Decorator/CreatorValidate.js.map +1 -0
  308. package/dist/lib/Framework/WebServer/Decorator/JsonAdminValidate.js +15 -0
  309. package/dist/lib/Framework/WebServer/Decorator/JsonAdminValidate.js.map +1 -0
  310. package/dist/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js +20 -0
  311. package/dist/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js.map +1 -0
  312. package/dist/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js +19 -0
  313. package/dist/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js.map +1 -0
  314. package/dist/lib/Framework/WebServer/Decorator/SyncCall.js +21 -0
  315. package/dist/lib/Framework/WebServer/Decorator/SyncCall.js.map +1 -0
  316. package/dist/lib/Framework/WebServer/Decorator/SyncCallServer.js +41 -0
  317. package/dist/lib/Framework/WebServer/Decorator/SyncCallServer.js.map +1 -0
  318. package/dist/lib/Framework/WebServer/Engine/ControllerManager.js +112 -0
  319. package/dist/lib/Framework/WebServer/Engine/ControllerManager.js.map +1 -0
  320. package/dist/lib/Framework/WebServer/Engine/Engine.js +153 -0
  321. package/dist/lib/Framework/WebServer/Engine/Engine.js.map +1 -0
  322. package/dist/lib/Framework/WebServer/Engine/RazorJs.js +544 -0
  323. package/dist/lib/Framework/WebServer/Engine/RazorJs.js.map +1 -0
  324. package/dist/lib/Framework/WebServer/Engine/Request.js +216 -0
  325. package/dist/lib/Framework/WebServer/Engine/Request.js.map +1 -0
  326. package/dist/lib/Framework/WebServer/Engine/Response.js +100 -0
  327. package/dist/lib/Framework/WebServer/Engine/Response.js.map +1 -0
  328. package/dist/lib/Framework/WebServer/IWebServer.js +54 -0
  329. package/dist/lib/Framework/WebServer/IWebServer.js.map +1 -0
  330. package/dist/lib/Framework/cgserver.js +87 -0
  331. package/dist/lib/Framework/cgserver.js.map +1 -0
  332. package/dist/lib/Framework/index.js +186 -0
  333. package/dist/lib/Framework/index.js.map +1 -0
  334. package/dist/lib/Logic/CacheTool.js +32 -28
  335. package/dist/lib/Logic/EventTool.js +33 -18
  336. package/dist/lib/Logic/HttpTool.js +24 -21
  337. package/dist/lib/Logic/Log.js +70 -62
  338. package/dist/lib/Logic/SyncQueueTool.js +126 -35
  339. package/dist/lib/Service/AccountService.js +612 -420
  340. package/dist/lib/Service/MongoAccountService.js +551 -356
  341. package/dist/lib/Service/MongoCacheService.js +114 -34
  342. package/dist/lib/Service/MongoUserService.js +189 -85
  343. package/dist/lib/Service/UserService.js +282 -170
  344. package/dist/lib/Service/ini.js +1 -1
  345. package/dist/lib/SocketServer/IClientWebSocket.js +58 -26
  346. package/dist/lib/SocketServer/IRpc.js +32 -8
  347. package/dist/lib/SocketServer/IRpcClientWebSocket.js +115 -48
  348. package/dist/lib/SocketServer/IRpcServerWebSocket.js +115 -48
  349. package/dist/lib/SocketServer/IServerWebSocket.js +86 -49
  350. package/dist/lib/SocketServer/ISocketServer.js +174 -101
  351. package/dist/lib/SocketServer/IWebSocket.js +213 -120
  352. package/dist/lib/SocketServer/ProtoFilter/GoogleProtoFilter.js +22 -19
  353. package/dist/lib/SocketServer/ProtoFilter/IProtoFilter.js +1 -1
  354. package/dist/lib/SocketServer/ProtoFilter/JsonProtoFilter.js +14 -11
  355. package/dist/lib/SocketServer/ProtoFilter/ProtoFactory.js +13 -10
  356. package/dist/lib/ThirdParty/AlipayTool.js +171 -110
  357. package/dist/lib/ThirdParty/Alisms.js +20 -16
  358. package/dist/lib/ThirdParty/AppleTool.js +259 -179
  359. package/dist/lib/ThirdParty/CgMq.js +268 -118
  360. package/dist/lib/ThirdParty/EmailTool.js +15 -12
  361. package/dist/lib/ThirdParty/OpenSocial.js +83 -24
  362. package/dist/lib/ThirdParty/QQTool.js +153 -86
  363. package/dist/lib/ThirdParty/QiniuTool.js +21 -14
  364. package/dist/lib/ThirdParty/Rpc.js +169 -51
  365. package/dist/lib/ThirdParty/WechatOATool.js +32 -26
  366. package/dist/lib/ThirdParty/WechatTool.js +134 -60
  367. package/dist/lib/WebServer/Controller/BaseController.js +122 -56
  368. package/dist/lib/WebServer/Controller/BaseUserController.js +244 -110
  369. package/dist/lib/WebServer/Controller/MongoBaseUserController.js +244 -110
  370. package/dist/lib/WebServer/Decorator/AdminValidate.js +3 -3
  371. package/dist/lib/WebServer/Decorator/AuthorityValidate.js +4 -4
  372. package/dist/lib/WebServer/Decorator/CreatorValidate.js +3 -3
  373. package/dist/lib/WebServer/Decorator/JsonAdminValidate.js +3 -3
  374. package/dist/lib/WebServer/Decorator/JsonAuthorityValidate.js +4 -4
  375. package/dist/lib/WebServer/Decorator/JsonCreatorValidate.js +3 -3
  376. package/dist/lib/WebServer/Decorator/SyncCall.js +49 -7
  377. package/dist/lib/WebServer/Decorator/SyncCallServer.js +96 -27
  378. package/dist/lib/WebServer/Engine/ControllerManager.js +35 -30
  379. package/dist/lib/WebServer/Engine/Engine.js +152 -98
  380. package/dist/lib/WebServer/Engine/RazorJs.js +64 -61
  381. package/dist/lib/WebServer/Engine/Request.js +183 -125
  382. package/dist/lib/WebServer/Engine/Response.js +50 -48
  383. package/dist/lib/WebServer/IWebServer.js +91 -38
  384. package/dist/lib/cgserver.js +57 -44
  385. package/dist/lib/index.js +107 -96
  386. package/dist/lib/test/test.js +21 -0
  387. package/dist/lib/test/test.js.map +1 -0
  388. package/dist/test/test.js +11 -0
  389. package/dist/test/test.js.map +1 -0
  390. package/dist/types/Framework/AI/AiObject.d.ts +5 -0
  391. package/dist/types/Framework/AI/Astar.d.ts +38 -0
  392. package/dist/types/Framework/AI/BehaviorAI.d.ts +24 -0
  393. package/dist/types/Framework/AI/Entity.d.ts +12 -0
  394. package/dist/types/Framework/AI/Point.d.ts +17 -0
  395. package/dist/types/Framework/AI/TriggerMgr.d.ts +52 -0
  396. package/dist/types/Framework/Config/Config.d.ts +12 -0
  397. package/dist/types/Framework/Config/FrameworkConfig.d.ts +228 -0
  398. package/dist/types/Framework/Config/IServerConfig.d.ts +9 -0
  399. package/dist/types/Framework/Config/_error_.d.ts +99 -0
  400. package/dist/types/Framework/Core/Core.d.ts +108 -0
  401. package/dist/types/Framework/Core/Timer.d.ts +16 -0
  402. package/dist/types/Framework/Database/Decorator/AutoIncrement.d.ts +1 -0
  403. package/dist/types/Framework/Database/Decorator/DBCache.d.ts +23 -0
  404. package/dist/types/Framework/Database/Decorator/NotNull.d.ts +1 -0
  405. package/dist/types/Framework/Database/Decorator/PrimaryKey.d.ts +1 -0
  406. package/dist/types/Framework/Database/Decorator/Property.d.ts +57 -0
  407. package/dist/types/Framework/Database/Decorator/Table.d.ts +1 -0
  408. package/dist/types/Framework/Database/Decorator/Type.d.ts +1 -0
  409. package/dist/types/Framework/Database/MSSqlManager.d.ts +17 -0
  410. package/dist/types/Framework/Database/MongoBaseService.d.ts +81 -0
  411. package/dist/types/Framework/Database/MongoManager.d.ts +143 -0
  412. package/dist/types/Framework/Database/MysqlBaseService.d.ts +34 -0
  413. package/dist/types/Framework/Database/MysqlManager.d.ts +41 -0
  414. package/dist/types/Framework/Database/RedisManager.d.ts +64 -0
  415. package/dist/types/Framework/Logic/CacheTool.d.ts +27 -0
  416. package/dist/types/Framework/Logic/EventTool.d.ts +13 -0
  417. package/dist/types/Framework/Logic/HttpTool.d.ts +15 -0
  418. package/dist/types/Framework/Logic/Log.d.ts +25 -0
  419. package/dist/types/Framework/Logic/SyncQueueTool.d.ts +21 -0
  420. package/dist/types/Framework/Service/AccountService.d.ts +77 -0
  421. package/dist/types/Framework/Service/MongoAccountService.d.ts +78 -0
  422. package/dist/types/Framework/Service/MongoCacheService.d.ts +14 -0
  423. package/dist/types/Framework/Service/MongoUserService.d.ts +36 -0
  424. package/dist/types/Framework/Service/UserService.d.ts +36 -0
  425. package/dist/types/Framework/Service/ini.d.ts +29 -0
  426. package/dist/types/Framework/SocketServer/IClientWebSocket.d.ts +17 -0
  427. package/dist/types/Framework/SocketServer/IRpc.d.ts +8 -0
  428. package/dist/types/Framework/SocketServer/IRpcClientWebSocket.d.ts +16 -0
  429. package/dist/types/Framework/SocketServer/IRpcServerWebSocket.d.ts +16 -0
  430. package/dist/types/Framework/SocketServer/IServerWebSocket.d.ts +28 -0
  431. package/dist/types/Framework/SocketServer/ISocketServer.d.ts +45 -0
  432. package/dist/types/Framework/SocketServer/IWebSocket.d.ts +60 -0
  433. package/dist/types/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +9 -0
  434. package/dist/types/Framework/SocketServer/ProtoFilter/IProtoFilter.d.ts +9 -0
  435. package/dist/types/Framework/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +6 -0
  436. package/dist/types/Framework/SocketServer/ProtoFilter/ProtoFactory.d.ts +8 -0
  437. package/dist/types/Framework/ThirdParty/AlipayTool.d.ts +109 -0
  438. package/dist/types/Framework/ThirdParty/Alisms.d.ts +14 -0
  439. package/dist/types/Framework/ThirdParty/AppleTool.d.ts +131 -0
  440. package/dist/types/Framework/ThirdParty/CgMq.d.ts +51 -0
  441. package/dist/types/Framework/ThirdParty/EmailTool.d.ts +5 -0
  442. package/dist/types/Framework/ThirdParty/OpenSocial.d.ts +7 -0
  443. package/dist/types/Framework/ThirdParty/QQTool.d.ts +41 -0
  444. package/dist/types/Framework/ThirdParty/QiniuTool.d.ts +6 -0
  445. package/dist/types/Framework/ThirdParty/Rpc.d.ts +20 -0
  446. package/dist/types/Framework/ThirdParty/WechatOATool.d.ts +13 -0
  447. package/dist/types/Framework/ThirdParty/WechatTool.d.ts +20 -0
  448. package/dist/types/Framework/WebServer/Controller/BaseController.d.ts +33 -0
  449. package/dist/types/Framework/WebServer/Controller/BaseUserController.d.ts +27 -0
  450. package/dist/types/Framework/WebServer/Controller/MongoBaseUserController.d.ts +27 -0
  451. package/dist/types/Framework/WebServer/Decorator/AdminValidate.d.ts +1 -0
  452. package/dist/types/Framework/WebServer/Decorator/AuthorityValidate.d.ts +2 -0
  453. package/dist/types/Framework/WebServer/Decorator/CreatorValidate.d.ts +1 -0
  454. package/dist/types/Framework/WebServer/Decorator/JsonAdminValidate.d.ts +1 -0
  455. package/dist/types/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
  456. package/dist/types/Framework/WebServer/Decorator/JsonCreatorValidate.d.ts +1 -0
  457. package/dist/types/Framework/WebServer/Decorator/SyncCall.d.ts +7 -0
  458. package/dist/types/Framework/WebServer/Decorator/SyncCallServer.d.ts +7 -0
  459. package/dist/types/Framework/WebServer/Engine/ControllerManager.d.ts +35 -0
  460. package/dist/types/Framework/WebServer/Engine/Engine.d.ts +21 -0
  461. package/dist/types/Framework/WebServer/Engine/RazorJs.d.ts +21 -0
  462. package/dist/types/Framework/WebServer/Engine/Request.d.ts +35 -0
  463. package/dist/types/Framework/WebServer/Engine/Response.d.ts +30 -0
  464. package/dist/types/Framework/WebServer/IWebServer.d.ts +20 -0
  465. package/dist/types/Framework/cgserver.d.ts +24 -0
  466. package/dist/types/Framework/index.d.ts +85 -0
  467. package/dist/types/test/test.d.ts +1 -0
  468. package/package.json +1 -1
  469. package/src/Framework/AI/AiObject.ts +12 -0
  470. package/src/Framework/AI/Astar.ts +157 -0
  471. package/src/Framework/AI/BehaviorAI.ts +382 -0
  472. package/src/Framework/AI/Entity.ts +37 -0
  473. package/src/Framework/AI/Point.ts +84 -0
  474. package/src/Framework/AI/TriggerMgr.ts +280 -0
  475. package/src/Framework/Config/Config.ts +61 -0
  476. package/src/Framework/Config/FrameworkConfig.ts +286 -0
  477. package/src/Framework/Config/IServerConfig.ts +28 -0
  478. package/src/Framework/Config/_error_.ts +32 -0
  479. package/src/Framework/Core/Core.ts +810 -0
  480. package/src/Framework/Core/Timer.ts +147 -0
  481. package/src/Framework/Database/Decorator/AutoIncrement.ts +9 -0
  482. package/src/Framework/Database/Decorator/DBCache.ts +74 -0
  483. package/src/Framework/Database/Decorator/NotNull.ts +9 -0
  484. package/src/Framework/Database/Decorator/PrimaryKey.ts +9 -0
  485. package/src/Framework/Database/Decorator/Property.ts +64 -0
  486. package/src/Framework/Database/Decorator/Table.ts +13 -0
  487. package/src/Framework/Database/Decorator/Type.ts +21 -0
  488. package/src/Framework/Database/MSSqlManager.ts +52 -0
  489. package/src/Framework/Database/MongoBaseService.ts +136 -0
  490. package/src/Framework/Database/MongoManager.ts +501 -0
  491. package/src/Framework/Database/MysqlBaseService.ts +345 -0
  492. package/src/Framework/Database/MysqlManager.ts +212 -0
  493. package/src/Framework/Database/RedisManager.ts +544 -0
  494. package/src/Framework/Logic/CacheTool.ts +85 -0
  495. package/src/Framework/Logic/EventTool.ts +31 -0
  496. package/src/Framework/Logic/HttpTool.ts +82 -0
  497. package/src/Framework/Logic/Log.ts +171 -0
  498. package/src/Framework/Logic/SyncQueueTool.ts +51 -0
  499. package/src/Framework/Service/AccountService.ts +508 -0
  500. package/src/Framework/Service/MongoAccountService.ts +456 -0
  501. package/src/Framework/Service/MongoCacheService.ts +48 -0
  502. package/src/Framework/Service/MongoUserService.ts +103 -0
  503. package/src/Framework/Service/UserService.ts +168 -0
  504. package/src/Framework/Service/ini.ts +33 -0
  505. package/src/Framework/SocketServer/IClientWebSocket.ts +50 -0
  506. package/src/Framework/SocketServer/IRpc.ts +12 -0
  507. package/src/Framework/SocketServer/IRpcClientWebSocket.ts +75 -0
  508. package/src/Framework/SocketServer/IRpcServerWebSocket.ts +76 -0
  509. package/src/Framework/SocketServer/IServerWebSocket.ts +88 -0
  510. package/src/Framework/SocketServer/ISocketServer.ts +243 -0
  511. package/src/Framework/SocketServer/IWebSocket.ts +243 -0
  512. package/src/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.ts +68 -0
  513. package/src/Framework/SocketServer/ProtoFilter/IProtoFilter.ts +11 -0
  514. package/src/Framework/SocketServer/ProtoFilter/JsonProtoFilter.ts +34 -0
  515. package/src/Framework/SocketServer/ProtoFilter/ProtoFactory.ts +34 -0
  516. package/src/Framework/ThirdParty/AlipayTool.ts +224 -0
  517. package/src/Framework/ThirdParty/Alisms.ts +53 -0
  518. package/src/Framework/ThirdParty/AppleTool.ts +252 -0
  519. package/src/Framework/ThirdParty/CgMq.ts +153 -0
  520. package/src/Framework/ThirdParty/EmailTool.ts +37 -0
  521. package/src/Framework/ThirdParty/OpenSocial.ts +36 -0
  522. package/src/Framework/ThirdParty/QQTool.ts +124 -0
  523. package/src/Framework/ThirdParty/QiniuTool.ts +23 -0
  524. package/src/Framework/ThirdParty/Rpc.ts +75 -0
  525. package/src/Framework/ThirdParty/WechatOATool.ts +61 -0
  526. package/src/Framework/ThirdParty/WechatTool.ts +80 -0
  527. package/src/Framework/WebServer/Controller/BaseController.ts +140 -0
  528. package/src/Framework/WebServer/Controller/BaseUserController.ts +209 -0
  529. package/src/Framework/WebServer/Controller/MongoBaseUserController.ts +209 -0
  530. package/src/Framework/WebServer/Decorator/AdminValidate.ts +19 -0
  531. package/src/Framework/WebServer/Decorator/AuthorityValidate.ts +25 -0
  532. package/src/Framework/WebServer/Decorator/CreatorValidate.ts +19 -0
  533. package/src/Framework/WebServer/Decorator/JsonAdminValidate.ts +16 -0
  534. package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
  535. package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.ts +23 -0
  536. package/src/Framework/WebServer/Decorator/JsonCreatorValidate.ts +19 -0
  537. package/src/Framework/WebServer/Decorator/SyncCall.ts +20 -0
  538. package/src/Framework/WebServer/Decorator/SyncCallServer.ts +45 -0
  539. package/src/Framework/WebServer/Engine/ControllerManager.ts +134 -0
  540. package/src/Framework/WebServer/Engine/Engine.ts +186 -0
  541. package/src/Framework/WebServer/Engine/RazorJs.ts +720 -0
  542. package/src/Framework/WebServer/Engine/Request.ts +267 -0
  543. package/src/Framework/WebServer/Engine/Response.ts +123 -0
  544. package/src/Framework/WebServer/IWebServer.ts +61 -0
  545. package/src/Framework/cgserver.ts +112 -0
  546. package/src/Framework/index.ts +92 -0
  547. 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,11 @@
1
+ export enum EProtoType
2
+ {
3
+ Json=1,
4
+ GoogleProtoBuffer=2
5
+ }
6
+ export interface IProtoFilter
7
+ {
8
+ init(path?:string):boolean
9
+ encode(data,...params)
10
+ decode(data,...params)
11
+ }
@@ -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()