cgserver 7.8.2113 → 7.10.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 (236) hide show
  1. package/dist/lib/{AI → Framework/AI}/BehaviorAI.js +1 -1
  2. package/dist/lib/{index.js → Framework/index.js} +5 -2
  3. package/dist/lib/test/test.js +21 -0
  4. package/dist/types/{index.d.ts → Framework/index.d.ts} +1 -1
  5. package/dist/types/test/test.d.ts +1 -0
  6. package/package.json +1 -1
  7. package/src/Framework/AI/AiObject.ts +12 -0
  8. package/src/Framework/AI/Astar.ts +157 -0
  9. package/src/Framework/AI/BehaviorAI.ts +382 -0
  10. package/src/Framework/AI/Entity.ts +37 -0
  11. package/src/Framework/AI/Point.ts +84 -0
  12. package/src/Framework/AI/TriggerMgr.ts +280 -0
  13. package/src/Framework/Config/Config.ts +61 -0
  14. package/src/Framework/Config/FrameworkConfig.ts +286 -0
  15. package/src/Framework/Config/IServerConfig.ts +28 -0
  16. package/src/Framework/Config/_error_.ts +32 -0
  17. package/src/Framework/Core/Core.ts +810 -0
  18. package/src/Framework/Core/Timer.ts +147 -0
  19. package/src/Framework/Database/Decorator/AutoIncrement.ts +9 -0
  20. package/src/Framework/Database/Decorator/DBCache.ts +74 -0
  21. package/src/Framework/Database/Decorator/NotNull.ts +9 -0
  22. package/src/Framework/Database/Decorator/PrimaryKey.ts +9 -0
  23. package/src/Framework/Database/Decorator/Property.ts +64 -0
  24. package/src/Framework/Database/Decorator/Table.ts +13 -0
  25. package/src/Framework/Database/Decorator/Type.ts +21 -0
  26. package/src/Framework/Database/MSSqlManager.ts +52 -0
  27. package/src/Framework/Database/MongoBaseService.ts +136 -0
  28. package/src/Framework/Database/MongoManager.ts +501 -0
  29. package/src/Framework/Database/MysqlBaseService.ts +345 -0
  30. package/src/Framework/Database/MysqlManager.ts +212 -0
  31. package/src/Framework/Database/RedisManager.ts +544 -0
  32. package/src/Framework/Logic/CacheTool.ts +85 -0
  33. package/src/Framework/Logic/EventTool.ts +31 -0
  34. package/src/Framework/Logic/HttpTool.ts +82 -0
  35. package/src/Framework/Logic/Log.ts +171 -0
  36. package/src/Framework/Logic/SyncQueueTool.ts +51 -0
  37. package/src/Framework/Service/AccountService.ts +508 -0
  38. package/src/Framework/Service/MongoAccountService.ts +456 -0
  39. package/src/Framework/Service/MongoCacheService.ts +48 -0
  40. package/src/Framework/Service/MongoUserService.ts +103 -0
  41. package/src/Framework/Service/UserService.ts +168 -0
  42. package/src/Framework/Service/ini.ts +33 -0
  43. package/src/Framework/SocketServer/IClientWebSocket.ts +50 -0
  44. package/src/Framework/SocketServer/IRpc.ts +12 -0
  45. package/src/Framework/SocketServer/IRpcClientWebSocket.ts +75 -0
  46. package/src/Framework/SocketServer/IRpcServerWebSocket.ts +76 -0
  47. package/src/Framework/SocketServer/IServerWebSocket.ts +88 -0
  48. package/src/Framework/SocketServer/ISocketServer.ts +243 -0
  49. package/src/Framework/SocketServer/IWebSocket.ts +243 -0
  50. package/src/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.ts +68 -0
  51. package/src/Framework/SocketServer/ProtoFilter/IProtoFilter.ts +11 -0
  52. package/src/Framework/SocketServer/ProtoFilter/JsonProtoFilter.ts +34 -0
  53. package/src/Framework/SocketServer/ProtoFilter/ProtoFactory.ts +34 -0
  54. package/src/Framework/ThirdParty/AlipayTool.ts +224 -0
  55. package/src/Framework/ThirdParty/Alisms.ts +53 -0
  56. package/src/Framework/ThirdParty/AppleTool.ts +252 -0
  57. package/src/Framework/ThirdParty/CgMq.ts +153 -0
  58. package/src/Framework/ThirdParty/EmailTool.ts +37 -0
  59. package/src/Framework/ThirdParty/OpenSocial.ts +36 -0
  60. package/src/Framework/ThirdParty/QQTool.ts +124 -0
  61. package/src/Framework/ThirdParty/QiniuTool.ts +23 -0
  62. package/src/Framework/ThirdParty/Rpc.ts +75 -0
  63. package/src/Framework/ThirdParty/WechatOATool.ts +61 -0
  64. package/src/Framework/ThirdParty/WechatTool.ts +80 -0
  65. package/src/Framework/WebServer/Controller/BaseController.ts +140 -0
  66. package/src/Framework/WebServer/Controller/BaseUserController.ts +209 -0
  67. package/src/Framework/WebServer/Controller/MongoBaseUserController.ts +209 -0
  68. package/src/Framework/WebServer/Decorator/AdminValidate.ts +19 -0
  69. package/src/Framework/WebServer/Decorator/AuthorityValidate.ts +25 -0
  70. package/src/Framework/WebServer/Decorator/CreatorValidate.ts +19 -0
  71. package/src/Framework/WebServer/Decorator/JsonAdminValidate.ts +16 -0
  72. package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
  73. package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.ts +23 -0
  74. package/src/Framework/WebServer/Decorator/JsonCreatorValidate.ts +19 -0
  75. package/src/Framework/WebServer/Decorator/SyncCall.ts +20 -0
  76. package/src/Framework/WebServer/Decorator/SyncCallServer.ts +45 -0
  77. package/src/Framework/WebServer/Engine/ControllerManager.ts +134 -0
  78. package/src/Framework/WebServer/Engine/Engine.ts +186 -0
  79. package/src/Framework/WebServer/Engine/RazorJs.ts +720 -0
  80. package/src/Framework/WebServer/Engine/Request.ts +267 -0
  81. package/src/Framework/WebServer/Engine/Response.ts +123 -0
  82. package/src/Framework/WebServer/IWebServer.ts +61 -0
  83. package/src/Framework/cgserver.ts +112 -0
  84. package/src/Framework/index.ts +92 -0
  85. package/src/test/test.ts +12 -0
  86. /package/dist/lib/{AI → Framework/AI}/AiObject.js +0 -0
  87. /package/dist/lib/{AI → Framework/AI}/Astar.js +0 -0
  88. /package/dist/lib/{AI → Framework/AI}/Entity.js +0 -0
  89. /package/dist/lib/{AI → Framework/AI}/Point.js +0 -0
  90. /package/dist/lib/{AI → Framework/AI}/TriggerMgr.js +0 -0
  91. /package/dist/lib/{Config → Framework/Config}/Config.js +0 -0
  92. /package/dist/lib/{Config → Framework/Config}/FrameworkConfig.js +0 -0
  93. /package/dist/lib/{Config → Framework/Config}/IServerConfig.js +0 -0
  94. /package/dist/lib/{Config → Framework/Config}/_error_.js +0 -0
  95. /package/dist/lib/{Core → Framework/Core}/Core.js +0 -0
  96. /package/dist/lib/{Core → Framework/Core}/Timer.js +0 -0
  97. /package/dist/lib/{Database → Framework/Database}/Decorator/AutoIncrement.js +0 -0
  98. /package/dist/lib/{Database → Framework/Database}/Decorator/DBCache.js +0 -0
  99. /package/dist/lib/{Database → Framework/Database}/Decorator/NotNull.js +0 -0
  100. /package/dist/lib/{Database → Framework/Database}/Decorator/PrimaryKey.js +0 -0
  101. /package/dist/lib/{Database → Framework/Database}/Decorator/Property.js +0 -0
  102. /package/dist/lib/{Database → Framework/Database}/Decorator/Table.js +0 -0
  103. /package/dist/lib/{Database → Framework/Database}/Decorator/Type.js +0 -0
  104. /package/dist/lib/{Database → Framework/Database}/MSSqlManager.js +0 -0
  105. /package/dist/lib/{Database → Framework/Database}/MongoBaseService.js +0 -0
  106. /package/dist/lib/{Database → Framework/Database}/MongoManager.js +0 -0
  107. /package/dist/lib/{Database → Framework/Database}/MysqlBaseService.js +0 -0
  108. /package/dist/lib/{Database → Framework/Database}/MysqlManager.js +0 -0
  109. /package/dist/lib/{Database → Framework/Database}/RedisManager.js +0 -0
  110. /package/dist/lib/{Logic → Framework/Logic}/CacheTool.js +0 -0
  111. /package/dist/lib/{Logic → Framework/Logic}/EventTool.js +0 -0
  112. /package/dist/lib/{Logic → Framework/Logic}/HttpTool.js +0 -0
  113. /package/dist/lib/{Logic → Framework/Logic}/Log.js +0 -0
  114. /package/dist/lib/{Logic → Framework/Logic}/SyncQueueTool.js +0 -0
  115. /package/dist/lib/{Service → Framework/Service}/AccountService.js +0 -0
  116. /package/dist/lib/{Service → Framework/Service}/MongoAccountService.js +0 -0
  117. /package/dist/lib/{Service → Framework/Service}/MongoCacheService.js +0 -0
  118. /package/dist/lib/{Service → Framework/Service}/MongoUserService.js +0 -0
  119. /package/dist/lib/{Service → Framework/Service}/UserService.js +0 -0
  120. /package/dist/lib/{Service → Framework/Service}/ini.js +0 -0
  121. /package/dist/lib/{SocketServer → Framework/SocketServer}/IClientWebSocket.js +0 -0
  122. /package/dist/lib/{SocketServer → Framework/SocketServer}/IRpc.js +0 -0
  123. /package/dist/lib/{SocketServer → Framework/SocketServer}/IRpcClientWebSocket.js +0 -0
  124. /package/dist/lib/{SocketServer → Framework/SocketServer}/IRpcServerWebSocket.js +0 -0
  125. /package/dist/lib/{SocketServer → Framework/SocketServer}/IServerWebSocket.js +0 -0
  126. /package/dist/lib/{SocketServer → Framework/SocketServer}/ISocketServer.js +0 -0
  127. /package/dist/lib/{SocketServer → Framework/SocketServer}/IWebSocket.js +0 -0
  128. /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/GoogleProtoFilter.js +0 -0
  129. /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/IProtoFilter.js +0 -0
  130. /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/JsonProtoFilter.js +0 -0
  131. /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/ProtoFactory.js +0 -0
  132. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/AlipayTool.js +0 -0
  133. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/Alisms.js +0 -0
  134. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/AppleTool.js +0 -0
  135. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/CgMq.js +0 -0
  136. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/EmailTool.js +0 -0
  137. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/OpenSocial.js +0 -0
  138. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/QQTool.js +0 -0
  139. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/QiniuTool.js +0 -0
  140. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/Rpc.js +0 -0
  141. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/WechatOATool.js +0 -0
  142. /package/dist/lib/{ThirdParty → Framework/ThirdParty}/WechatTool.js +0 -0
  143. /package/dist/lib/{WebServer → Framework/WebServer}/Controller/BaseController.js +0 -0
  144. /package/dist/lib/{WebServer → Framework/WebServer}/Controller/BaseUserController.js +0 -0
  145. /package/dist/lib/{WebServer → Framework/WebServer}/Controller/MongoBaseUserController.js +0 -0
  146. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/AdminValidate.js +0 -0
  147. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/AuthorityValidate.js +0 -0
  148. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/CreatorValidate.js +0 -0
  149. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/JsonAdminValidate.js +0 -0
  150. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/JsonAuthorityValidate.js +0 -0
  151. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/JsonCreatorValidate.js +0 -0
  152. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/SyncCall.js +0 -0
  153. /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/SyncCallServer.js +0 -0
  154. /package/dist/lib/{WebServer → Framework/WebServer}/Engine/ControllerManager.js +0 -0
  155. /package/dist/lib/{WebServer → Framework/WebServer}/Engine/Engine.js +0 -0
  156. /package/dist/lib/{WebServer → Framework/WebServer}/Engine/RazorJs.js +0 -0
  157. /package/dist/lib/{WebServer → Framework/WebServer}/Engine/Request.js +0 -0
  158. /package/dist/lib/{WebServer → Framework/WebServer}/Engine/Response.js +0 -0
  159. /package/dist/lib/{WebServer → Framework/WebServer}/IWebServer.js +0 -0
  160. /package/dist/lib/{cgserver.js → Framework/cgserver.js} +0 -0
  161. /package/dist/types/{AI → Framework/AI}/AiObject.d.ts +0 -0
  162. /package/dist/types/{AI → Framework/AI}/Astar.d.ts +0 -0
  163. /package/dist/types/{AI → Framework/AI}/BehaviorAI.d.ts +0 -0
  164. /package/dist/types/{AI → Framework/AI}/Entity.d.ts +0 -0
  165. /package/dist/types/{AI → Framework/AI}/Point.d.ts +0 -0
  166. /package/dist/types/{AI → Framework/AI}/TriggerMgr.d.ts +0 -0
  167. /package/dist/types/{Config → Framework/Config}/Config.d.ts +0 -0
  168. /package/dist/types/{Config → Framework/Config}/FrameworkConfig.d.ts +0 -0
  169. /package/dist/types/{Config → Framework/Config}/IServerConfig.d.ts +0 -0
  170. /package/dist/types/{Config → Framework/Config}/_error_.d.ts +0 -0
  171. /package/dist/types/{Core → Framework/Core}/Core.d.ts +0 -0
  172. /package/dist/types/{Core → Framework/Core}/Timer.d.ts +0 -0
  173. /package/dist/types/{Database → Framework/Database}/Decorator/AutoIncrement.d.ts +0 -0
  174. /package/dist/types/{Database → Framework/Database}/Decorator/DBCache.d.ts +0 -0
  175. /package/dist/types/{Database → Framework/Database}/Decorator/NotNull.d.ts +0 -0
  176. /package/dist/types/{Database → Framework/Database}/Decorator/PrimaryKey.d.ts +0 -0
  177. /package/dist/types/{Database → Framework/Database}/Decorator/Property.d.ts +0 -0
  178. /package/dist/types/{Database → Framework/Database}/Decorator/Table.d.ts +0 -0
  179. /package/dist/types/{Database → Framework/Database}/Decorator/Type.d.ts +0 -0
  180. /package/dist/types/{Database → Framework/Database}/MSSqlManager.d.ts +0 -0
  181. /package/dist/types/{Database → Framework/Database}/MongoBaseService.d.ts +0 -0
  182. /package/dist/types/{Database → Framework/Database}/MongoManager.d.ts +0 -0
  183. /package/dist/types/{Database → Framework/Database}/MysqlBaseService.d.ts +0 -0
  184. /package/dist/types/{Database → Framework/Database}/MysqlManager.d.ts +0 -0
  185. /package/dist/types/{Database → Framework/Database}/RedisManager.d.ts +0 -0
  186. /package/dist/types/{Logic → Framework/Logic}/CacheTool.d.ts +0 -0
  187. /package/dist/types/{Logic → Framework/Logic}/EventTool.d.ts +0 -0
  188. /package/dist/types/{Logic → Framework/Logic}/HttpTool.d.ts +0 -0
  189. /package/dist/types/{Logic → Framework/Logic}/Log.d.ts +0 -0
  190. /package/dist/types/{Logic → Framework/Logic}/SyncQueueTool.d.ts +0 -0
  191. /package/dist/types/{Service → Framework/Service}/AccountService.d.ts +0 -0
  192. /package/dist/types/{Service → Framework/Service}/MongoAccountService.d.ts +0 -0
  193. /package/dist/types/{Service → Framework/Service}/MongoCacheService.d.ts +0 -0
  194. /package/dist/types/{Service → Framework/Service}/MongoUserService.d.ts +0 -0
  195. /package/dist/types/{Service → Framework/Service}/UserService.d.ts +0 -0
  196. /package/dist/types/{Service → Framework/Service}/ini.d.ts +0 -0
  197. /package/dist/types/{SocketServer → Framework/SocketServer}/IClientWebSocket.d.ts +0 -0
  198. /package/dist/types/{SocketServer → Framework/SocketServer}/IRpc.d.ts +0 -0
  199. /package/dist/types/{SocketServer → Framework/SocketServer}/IRpcClientWebSocket.d.ts +0 -0
  200. /package/dist/types/{SocketServer → Framework/SocketServer}/IRpcServerWebSocket.d.ts +0 -0
  201. /package/dist/types/{SocketServer → Framework/SocketServer}/IServerWebSocket.d.ts +0 -0
  202. /package/dist/types/{SocketServer → Framework/SocketServer}/ISocketServer.d.ts +0 -0
  203. /package/dist/types/{SocketServer → Framework/SocketServer}/IWebSocket.d.ts +0 -0
  204. /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/GoogleProtoFilter.d.ts +0 -0
  205. /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/IProtoFilter.d.ts +0 -0
  206. /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/JsonProtoFilter.d.ts +0 -0
  207. /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/ProtoFactory.d.ts +0 -0
  208. /package/dist/types/{ThirdParty → Framework/ThirdParty}/AlipayTool.d.ts +0 -0
  209. /package/dist/types/{ThirdParty → Framework/ThirdParty}/Alisms.d.ts +0 -0
  210. /package/dist/types/{ThirdParty → Framework/ThirdParty}/AppleTool.d.ts +0 -0
  211. /package/dist/types/{ThirdParty → Framework/ThirdParty}/CgMq.d.ts +0 -0
  212. /package/dist/types/{ThirdParty → Framework/ThirdParty}/EmailTool.d.ts +0 -0
  213. /package/dist/types/{ThirdParty → Framework/ThirdParty}/OpenSocial.d.ts +0 -0
  214. /package/dist/types/{ThirdParty → Framework/ThirdParty}/QQTool.d.ts +0 -0
  215. /package/dist/types/{ThirdParty → Framework/ThirdParty}/QiniuTool.d.ts +0 -0
  216. /package/dist/types/{ThirdParty → Framework/ThirdParty}/Rpc.d.ts +0 -0
  217. /package/dist/types/{ThirdParty → Framework/ThirdParty}/WechatOATool.d.ts +0 -0
  218. /package/dist/types/{ThirdParty → Framework/ThirdParty}/WechatTool.d.ts +0 -0
  219. /package/dist/types/{WebServer → Framework/WebServer}/Controller/BaseController.d.ts +0 -0
  220. /package/dist/types/{WebServer → Framework/WebServer}/Controller/BaseUserController.d.ts +0 -0
  221. /package/dist/types/{WebServer → Framework/WebServer}/Controller/MongoBaseUserController.d.ts +0 -0
  222. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/AdminValidate.d.ts +0 -0
  223. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/AuthorityValidate.d.ts +0 -0
  224. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/CreatorValidate.d.ts +0 -0
  225. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/JsonAdminValidate.d.ts +0 -0
  226. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/JsonAuthorityValidate.d.ts +0 -0
  227. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/JsonCreatorValidate.d.ts +0 -0
  228. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/SyncCall.d.ts +0 -0
  229. /package/dist/types/{WebServer → Framework/WebServer}/Decorator/SyncCallServer.d.ts +0 -0
  230. /package/dist/types/{WebServer → Framework/WebServer}/Engine/ControllerManager.d.ts +0 -0
  231. /package/dist/types/{WebServer → Framework/WebServer}/Engine/Engine.d.ts +0 -0
  232. /package/dist/types/{WebServer → Framework/WebServer}/Engine/RazorJs.d.ts +0 -0
  233. /package/dist/types/{WebServer → Framework/WebServer}/Engine/Request.d.ts +0 -0
  234. /package/dist/types/{WebServer → Framework/WebServer}/Engine/Response.d.ts +0 -0
  235. /package/dist/types/{WebServer → Framework/WebServer}/IWebServer.d.ts +0 -0
  236. /package/dist/types/{cgserver.d.ts → Framework/cgserver.d.ts} +0 -0
@@ -0,0 +1,544 @@
1
+ import { GLog } from '../Logic/Log';
2
+ import * as redis from 'redis';
3
+
4
+ export let GRedisMgr:RedisManager = null
5
+ export class RedisManager
6
+ {
7
+ protected _redis:redis.RedisClient = null
8
+ get redis()
9
+ {
10
+ return this._redis
11
+ }
12
+ protected _resis_init_succ:boolean=false
13
+ protected _redisCfg:{open:boolean,
14
+ host:string,
15
+ port:number,
16
+ database:number,
17
+ password:string}=null
18
+ constructor()
19
+ {
20
+
21
+ }
22
+ async init(redisCfg:{open:boolean,
23
+ host:string,
24
+ port:number,
25
+ database:number,
26
+ password:string})
27
+ {
28
+ return new Promise((resolve)=>{
29
+ if(!redisCfg||!redisCfg.open)
30
+ {
31
+ resolve(null)
32
+ return
33
+ }
34
+ if(this._redis)
35
+ {
36
+ resolve(null)
37
+ return
38
+ }
39
+ this._redisCfg=redisCfg
40
+ GLog.info("begin conect redis="+JSON.stringify(redisCfg))
41
+ this._redis = redis.createClient(redisCfg.port, redisCfg.host, { parser: "javascript", return_buffers: false, connect_timeout: 3000,password:redisCfg.password })
42
+ this._redis.on("connect", ()=>
43
+ {
44
+ this.onConnect()
45
+ resolve(null)
46
+ })
47
+ this._redis.on("end", this.onEnd.bind(this))
48
+ this._redis.on("error", this.onError.bind(this))
49
+ })
50
+ }
51
+ onConnect()
52
+ {
53
+ if(this._redisCfg.database)
54
+ {
55
+ this._redis.select(this._redisCfg.database)
56
+ }
57
+ this._resis_init_succ = true
58
+ GLog.info("redis has connected!")
59
+ }
60
+ onEnd()
61
+ {
62
+ this._resis_init_succ = false
63
+ this._redis = null
64
+ this.init(this._redisCfg)//重连
65
+ }
66
+ onError(err)
67
+ {
68
+ GLog.info("Error connected="+this._redis.connected+": "+ err)
69
+ }
70
+ expire(key,seconds)
71
+ {
72
+ return new Promise((resolve,reject)=>
73
+ {
74
+ if(!this._redis)
75
+ {
76
+ resolve(null)
77
+ return
78
+ }
79
+ this._redis.expire(key,seconds,(err, reply)=>
80
+ {
81
+ if(err)
82
+ {
83
+ GLog.error(err)
84
+ }
85
+ resolve(reply)
86
+ })
87
+ })
88
+ }
89
+ incr(key)
90
+ {
91
+ return new Promise<number>((resolve,reject)=>
92
+ {
93
+ if(!this._redis)
94
+ {
95
+ resolve(null)
96
+ return
97
+ }
98
+ this._redis.incr(key,(err, reply)=>
99
+ {
100
+ if(err)
101
+ {
102
+ GLog.error(err)
103
+ }
104
+ resolve(reply)
105
+ })
106
+ })
107
+ }
108
+ set(key, value)
109
+ {
110
+ return new Promise((resolve,reject)=>
111
+ {
112
+ if(!this._redis)
113
+ {
114
+ resolve(null)
115
+ return
116
+ }
117
+ this._redis.set(key, value,(err, reply)=>
118
+ {
119
+ if(err)
120
+ {
121
+ GLog.error(err)
122
+ }
123
+ resolve(reply)
124
+ })
125
+ })
126
+ }
127
+ get(key):Promise<string>
128
+ {
129
+ return new Promise((resolve,reject)=>
130
+ {
131
+ if(!this._redis)
132
+ {
133
+ resolve(null)
134
+ return
135
+ }
136
+ this._redis.get(key,(err, reply)=>
137
+ {
138
+ if(err)
139
+ {
140
+ GLog.error(err)
141
+ }
142
+ resolve(reply)
143
+ })
144
+ })
145
+ }
146
+ /**
147
+ *
148
+ * @param key
149
+ * @param cb 有表示异步
150
+ */
151
+ del(key,cb?)
152
+ {
153
+ return new Promise((resolve,reject)=>
154
+ {
155
+ if(!this._redis)
156
+ {
157
+ resolve(null)
158
+ return
159
+ }
160
+ this._redis.del(key,(err, reply)=>
161
+ {
162
+ if(err)
163
+ {
164
+ GLog.error(err)
165
+ }
166
+ resolve(reply)
167
+ })
168
+ })
169
+ }
170
+ hset(h, key, value)
171
+ {
172
+ return new Promise((resolve,reject)=>
173
+ {
174
+ if(!this._redis)
175
+ {
176
+ resolve(null)
177
+ return
178
+ }
179
+ this._redis.hset(h, key, value,(err, reply)=>
180
+ {
181
+ if(err)
182
+ {
183
+ GLog.error(err)
184
+ }
185
+ resolve(reply)
186
+ })
187
+ })
188
+ }
189
+ hget(h, key)
190
+ {
191
+ return new Promise((resolve,reject)=>
192
+ {
193
+ if(!this._redis)
194
+ {
195
+ resolve(null)
196
+ return
197
+ }
198
+ this._redis.hget(h, key,(err, reply)=>
199
+ {
200
+ if(err)
201
+ {
202
+ GLog.error(err)
203
+ }
204
+ resolve(reply)
205
+ })
206
+ })
207
+ }
208
+ hdel(key,sub_key)
209
+ {
210
+ return new Promise((resolve,reject)=>
211
+ {
212
+ if(!this._redis)
213
+ {
214
+ resolve(null)
215
+ return
216
+ }
217
+ this._redis.hdel(key,sub_key,(err, reply)=>
218
+ {
219
+ if(err)
220
+ {
221
+ GLog.error(err)
222
+ }
223
+ resolve(reply)
224
+ })
225
+ })
226
+ }
227
+ /**
228
+ * hash值,能转换位整数的就自动转换为整数
229
+ * @param h key
230
+ */
231
+ hgetall(h):Promise<{ [key: string]: any }>
232
+ {
233
+ return new Promise((resolve,reject)=>
234
+ {
235
+ if(!this._redis)
236
+ {
237
+ resolve(null)
238
+ return
239
+ }
240
+ this._redis.hgetall(h,(err, replys)=>
241
+ {
242
+ if(err)
243
+ {
244
+ GLog.error(err)
245
+ resolve(replys)
246
+ return
247
+ }
248
+ let value={}
249
+ for(let k in replys)
250
+ {
251
+ let v = replys[k]
252
+ let iv=parseInt(v)
253
+ if(v==""+iv)
254
+ {
255
+ value[k] = iv
256
+ }
257
+ else
258
+ {
259
+ value[k]=v
260
+ }
261
+ }
262
+ if(!replys)
263
+ {
264
+ value=null
265
+ }
266
+ resolve(value)
267
+ })
268
+ })
269
+ }
270
+ /**
271
+ *
272
+ * @param h
273
+ * @param array
274
+ */
275
+ hmset(h,array)
276
+ {
277
+ return new Promise((resolve,reject)=>
278
+ {
279
+ if(!this._redis)
280
+ {
281
+ resolve(null)
282
+ return
283
+ }
284
+ this._redis.hmset(h, array,(err, replys)=>
285
+ {
286
+ if(err)
287
+ {
288
+ GLog.error(err)
289
+ }
290
+ resolve(replys)
291
+ })
292
+ })
293
+ }
294
+ lpush(key,array)
295
+ {
296
+ return new Promise((resolve,reject)=>
297
+ {
298
+ if(!this._redis)
299
+ {
300
+ resolve(null)
301
+ return
302
+ }
303
+ this._redis.lpush(key, array,(err, replys)=>
304
+ {
305
+ if(err)
306
+ {
307
+ GLog.error(err)
308
+ }
309
+ resolve(replys)
310
+ })
311
+ })
312
+ }
313
+ lrange(key:string,start?:number,end?:number)
314
+ {
315
+ return new Promise((resolve,reject)=>
316
+ {
317
+ if(!this._redis)
318
+ {
319
+ resolve(null)
320
+ return
321
+ }
322
+ if(!this._redis)
323
+ {
324
+ return null
325
+ }
326
+ if(!start)
327
+ {
328
+ start = 0
329
+ }
330
+ if(!end)
331
+ {
332
+ end = -1
333
+ }
334
+ this._redis.lrange(key, start, end,(err, replys)=>
335
+ {
336
+ if(err)
337
+ {
338
+ GLog.error(err)
339
+ }
340
+ resolve(replys)
341
+ })
342
+ })
343
+ }
344
+ ltrim(key:string,start:number,end?:number)
345
+ {
346
+ return new Promise((resolve,reject)=>
347
+ {
348
+ if(!this._redis)
349
+ {
350
+ resolve(null)
351
+ return
352
+ }
353
+ if(!this._redis)
354
+ {
355
+ return null
356
+ }
357
+ if(!start)
358
+ {
359
+ start = 0
360
+ }
361
+ if(!end)
362
+ {
363
+ end = -1
364
+ }
365
+ this._redis.ltrim(key, start, end,(err, replys)=>
366
+ {
367
+ if(err)
368
+ {
369
+ GLog.error(err)
370
+ }
371
+ resolve(replys)
372
+ })
373
+ })
374
+ }
375
+ sadd(key,array)
376
+ {
377
+ return new Promise((resolve,reject)=>
378
+ {
379
+ if(!this._redis)
380
+ {
381
+ resolve(null)
382
+ return
383
+ }
384
+ this._redis.sadd(key, array,(err, replys)=>
385
+ {
386
+ if(err)
387
+ {
388
+ GLog.error(err)
389
+ }
390
+ resolve(replys)
391
+ })
392
+ })
393
+ }
394
+ smembers(key)
395
+ {
396
+ return new Promise((resolve,reject)=>
397
+ {
398
+ if(!this._redis)
399
+ {
400
+ resolve(null)
401
+ return
402
+ }
403
+ this._redis.smembers(key,(err, replys)=>
404
+ {
405
+ if(err)
406
+ {
407
+ GLog.error(err)
408
+ }
409
+ resolve(replys)
410
+ })
411
+ })
412
+ }
413
+ srem(key,array)
414
+ {
415
+ return new Promise((resolve,reject)=>
416
+ {
417
+ if(!this._redis)
418
+ {
419
+ resolve(null)
420
+ return
421
+ }
422
+ this._redis.srem(key,array,(err, replys)=>
423
+ {
424
+ if(err)
425
+ {
426
+ GLog.error(err)
427
+ }
428
+ resolve(replys)
429
+ })
430
+ })
431
+ }
432
+ keys(key)
433
+ {
434
+ return new Promise((resolve,reject)=>
435
+ {
436
+ if(!this._redis)
437
+ {
438
+ resolve(null)
439
+ return
440
+ }
441
+ this._redis.keys(key,(err, replys)=>
442
+ {
443
+ if(err)
444
+ {
445
+ GLog.error(err)
446
+ }
447
+ resolve(replys)
448
+ })
449
+ })
450
+ }
451
+ multi()
452
+ {
453
+ if(!this._redis)
454
+ {
455
+ return null
456
+ }
457
+ return this._redis.multi()
458
+ }
459
+ exists(key:string)
460
+ {
461
+ return new Promise((resolve,reject)=>
462
+ {
463
+ if(!this._redis)
464
+ {
465
+ resolve(null)
466
+ return
467
+ }
468
+ this._redis.exists(key,(err, replys)=>
469
+ {
470
+ if(err)
471
+ {
472
+ GLog.error(err)
473
+ }
474
+ resolve(replys)
475
+ })
476
+ })
477
+ }
478
+ exec(multi:redis.Multi):Promise<Array<any>>
479
+ {
480
+ return new Promise((resolve,reject)=>
481
+ {
482
+ if(!this._redis||!multi)
483
+ {
484
+ resolve(null)
485
+ return
486
+ }
487
+ multi.exec((err, replys)=>
488
+ {
489
+ if(err)
490
+ {
491
+ GLog.error(err)
492
+ }
493
+ resolve(replys)
494
+ })
495
+ })
496
+ }
497
+ publish(channel:string,value:string)
498
+ {
499
+ return new Promise((resolve,reject)=>
500
+ {
501
+ if(!this._redis)
502
+ {
503
+ resolve(null)
504
+ return
505
+ }
506
+ this._redis.publish(channel,value,(err,num)=>
507
+ {
508
+ if(err)
509
+ {
510
+ GLog.error(err)
511
+ }
512
+ resolve(num)
513
+ })
514
+ })
515
+ }
516
+ subscribe(channel:string)
517
+ {
518
+ return new Promise((resolve,reject)=>
519
+ {
520
+ if(!this._redis)
521
+ {
522
+ resolve(null)
523
+ return
524
+ }
525
+ this._redis.subscribe(channel,(err,msg)=>
526
+ {
527
+ if(err)
528
+ {
529
+ GLog.error(err)
530
+ }
531
+ resolve(msg)
532
+ })
533
+ })
534
+ }
535
+ on(message:string,cb:any)
536
+ {
537
+ if(!this._redis)
538
+ {
539
+ return
540
+ }
541
+ this._redis.on(message,cb)
542
+ }
543
+ }
544
+ GRedisMgr = new RedisManager()
@@ -0,0 +1,85 @@
1
+ import * as _ from "underscore";
2
+
3
+ export let GCacheTool:CacheTool = null
4
+ class CacheItem
5
+ {
6
+ key:string = ""
7
+ value:any=null
8
+ milliseconds:number=0
9
+ expire_time=-1
10
+ }
11
+ class CacheTool
12
+ {
13
+ protected _items:{[key:string]:CacheItem}={}
14
+ constructor()
15
+ {
16
+ //一个小时清除一次过期缓存
17
+ setInterval(this._refresh.bind(this),60*60*1000)
18
+ }
19
+ /**
20
+ * 定时清除缓存
21
+ */
22
+ protected _refresh()
23
+ {
24
+ let time = new Date().getTime()
25
+ let keys = _.clone(this._items.keys)
26
+ for(let i in keys)
27
+ {
28
+ let key = keys[i]
29
+ let item = this._items[key]
30
+ if(!item)
31
+ {
32
+ delete this._items[key]
33
+ continue
34
+ }
35
+ if(time>item.expire_time)
36
+ {
37
+ this.remove(key)
38
+ }
39
+ }
40
+ }
41
+ get(key,refresh?:boolean)
42
+ {
43
+ let item:CacheItem = this._items[key]
44
+ if(!item)
45
+ {
46
+ return
47
+ }
48
+ let time = new Date().getTime()
49
+ if(time>item.expire_time)
50
+ {
51
+ this.remove(key)
52
+ return
53
+ }
54
+ if(refresh)
55
+ {
56
+ item.expire_time=time+item.milliseconds
57
+ }
58
+ return item.value
59
+ }
60
+ /**
61
+ *
62
+ * @param key
63
+ * @param value
64
+ * @param time 缓存的毫秒数
65
+ */
66
+ add(key,value,milliseconds)
67
+ {
68
+ let item:CacheItem = this._items[key]
69
+ if(!item)
70
+ {
71
+ item = new CacheItem()
72
+ item.key = key
73
+ this._items[key] = item
74
+ }
75
+ item.value = value
76
+ item.milliseconds = milliseconds
77
+ item.expire_time = new Date().getTime()+milliseconds
78
+ }
79
+ remove(key)
80
+ {
81
+ this._items[key] = null
82
+ delete this._items[key]
83
+ }
84
+ }
85
+ GCacheTool = new CacheTool()
@@ -0,0 +1,31 @@
1
+ import * as EventEmitter from "events";
2
+ class EventTool
3
+ {
4
+ protected _event_emitter=new EventEmitter()
5
+ constructor()
6
+ {
7
+ this._event_emitter.setMaxListeners(0)
8
+ }
9
+ on(event:string,func:(...args: any[]) => void)
10
+ {
11
+ this._event_emitter.on(event,func)
12
+ }
13
+ off(event:string,func:(...args: any[]) => void)
14
+ {
15
+ this._event_emitter.off(event,func)
16
+ }
17
+ once(event:string,func:(...args: any[]) => void)
18
+ {
19
+ this._event_emitter.once(event,func)
20
+ }
21
+ emit(event:string,...args: any[])
22
+ {
23
+ this._event_emitter.emit(event,...args)
24
+ }
25
+ listenerCount(event:string)
26
+ {
27
+ let count = this._event_emitter.listenerCount(event)||0
28
+ return count
29
+ }
30
+ }
31
+ export let GEventTool=new EventTool()