mm_os 3.3.0 → 4.0.0

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 (380) hide show
  1. package/LICENSE +21 -201
  2. package/README.md +491 -99
  3. package/README_EN.md +498 -0
  4. package/adapter/adapter.js +431 -0
  5. package/adapter/custom_persistence.js +660 -0
  6. package/adapter/mqtt.js +273 -0
  7. package/adapter/socket.js +113 -0
  8. package/adapter/web.js +67 -0
  9. package/adapter/websocket.js +146 -0
  10. package/com/api/com.json +5 -0
  11. package/{core/com → com}/api/config.tpl.json +8 -8
  12. package/com/api/drive.js +708 -0
  13. package/com/api/index.js +198 -0
  14. package/com/api/oauth.js +200 -0
  15. package/com/api/script.tpl.js +32 -0
  16. package/com/cmd/README.md +11 -0
  17. package/com/cmd/com.json +5 -0
  18. package/com/cmd/config.tpl.json +122 -0
  19. package/com/cmd/drive.js +1548 -0
  20. package/com/cmd/index.js +1066 -0
  21. package/com/cmd/msg.json +48 -0
  22. package/com/cmd/nlp.js +525 -0
  23. package/com/cmd/script.tpl.js +32 -0
  24. package/com/db/com.json +5 -0
  25. package/com/db/drive.js +1999 -0
  26. package/com/db/index.js +242 -0
  27. package/com/event/com.json +5 -0
  28. package/{core/com → com}/event/config.tpl.json +8 -8
  29. package/com/event/drive.js +59 -0
  30. package/com/event/index.js +409 -0
  31. package/com/event/script.tpl.js +23 -0
  32. package/com/mqtt/com.json +5 -0
  33. package/{core/com → com}/mqtt/config.tpl.json +3 -5
  34. package/com/mqtt/drive.js +676 -0
  35. package/com/mqtt/index.js +822 -0
  36. package/com/mqtt/mm_mqtt.js +425 -0
  37. package/com/mqtt/script.tpl.js +723 -0
  38. package/com/nav/com.json +5 -0
  39. package/com/nav/config.tpl.json +84 -0
  40. package/com/nav/drive.js +702 -0
  41. package/com/nav/index.js +231 -0
  42. package/{core/com → com}/nav/tpl/admin_pc/page_config.vue +280 -280
  43. package/{core/com → com}/nav/tpl/admin_pc/page_config_form.vue +194 -194
  44. package/com/nav/tpl/admin_pc/page_form.vue +180 -0
  45. package/com/nav/tpl/admin_pc/page_view.vue +124 -0
  46. package/com/nav/tpl/dev_pc/page_default.vue +247 -0
  47. package/com/nav/tpl/dev_pc/page_type.vue +313 -0
  48. package/com/nav/tpl/home_pc/page_default.vue +234 -0
  49. package/com/nav/tpl/home_pc/page_form.vue +137 -0
  50. package/com/nav/tpl/home_pc/page_list.vue +234 -0
  51. package/com/nav/tpl/home_pc/page_nav.vue +221 -0
  52. package/com/nav/tpl/home_pc/page_type.vue +234 -0
  53. package/com/nav/tpl/home_pc/page_view.vue +125 -0
  54. package/com/nav/tpl/home_phone/page_channel.vue +234 -0
  55. package/com/nav/tpl/home_phone/page_default.vue +234 -0
  56. package/com/nav/tpl/home_phone/page_form.vue +137 -0
  57. package/com/nav/tpl/home_phone/page_nav.vue +237 -0
  58. package/com/nav/tpl/home_phone/page_type.vue +234 -0
  59. package/com/nav/tpl/home_phone/page_view.vue +125 -0
  60. package/com/nav/viewmodel.js +446 -0
  61. package/com/param/com.json +5 -0
  62. package/{core/com → com}/param/config.tpl.json +7 -1
  63. package/com/param/drive.js +502 -0
  64. package/com/param/index.js +155 -0
  65. package/com/param/script.tpl.js +12 -0
  66. package/com/pendant/com.json +5 -0
  67. package/{core/com/component → com/pendant}/config.tpl.json +15 -13
  68. package/com/pendant/drive.js +204 -0
  69. package/com/pendant/index.js +441 -0
  70. package/com/pendant/pendant.html +16 -0
  71. package/com/pendant/script.tpl.js +18 -0
  72. package/com/socket/com.json +5 -0
  73. package/com/socket/config.tpl.json +12 -0
  74. package/com/socket/drive.js +651 -0
  75. package/com/socket/index.js +351 -0
  76. package/com/socket/script.tpl.js +41 -0
  77. package/com/sql/com.json +5 -0
  78. package/{core/com → com}/sql/config.tpl.json +13 -9
  79. package/com/sql/drive.js +1259 -0
  80. package/com/sql/index.js +150 -0
  81. package/com/sql/script.tpl.js +47 -0
  82. package/com/static/com.json +5 -0
  83. package/{core/com → com}/static/config.tpl.json +10 -6
  84. package/com/static/drive.js +194 -0
  85. package/com/static/index.js +226 -0
  86. package/com/static/script.tpl.js +28 -0
  87. package/com/task/com.json +5 -0
  88. package/{core/com → com}/task/config.tpl.json +4 -6
  89. package/com/task/drive.js +405 -0
  90. package/com/task/index.js +148 -0
  91. package/com/task/script.tpl.js +37 -0
  92. package/com/template/com.json +5 -0
  93. package/com/template/config.tpl.json +16 -0
  94. package/com/template/drive.js +80 -0
  95. package/com/template/index.js +141 -0
  96. package/com.js +156 -0
  97. package/common/README.md +2 -0
  98. package/common/handler/msg/handler.json +22 -0
  99. package/common/handler/msg/index.js +23 -0
  100. package/common/handler/player/handler.json +22 -0
  101. package/common/handler/player/index.js +287 -0
  102. package/common/handler/user/handler.json +22 -0
  103. package/common/handler/user/index.js +23 -0
  104. package/common/middleware/web_after/index.js +29 -0
  105. package/common/middleware/web_after/middleware.json +9 -0
  106. package/common/middleware/web_base/index.js +113 -0
  107. package/common/middleware/web_base/middleware.json +19 -0
  108. package/common/middleware/web_before/index.js +33 -0
  109. package/common/middleware/web_before/middleware.json +9 -0
  110. package/common/middleware/web_cors/index.js +87 -0
  111. package/common/middleware/web_cors/middleware.json +24 -0
  112. package/common/middleware/web_error/index.js +119 -0
  113. package/common/middleware/web_error/middleware.json +18 -0
  114. package/common/middleware/web_ip/index.js +15 -0
  115. package/common/middleware/web_ip/middleware.json +14 -0
  116. package/common/middleware/web_logger/index.js +156 -0
  117. package/common/middleware/web_logger/middleware.json +14 -0
  118. package/common/middleware/web_main/index.js +24 -0
  119. package/common/middleware/web_main/middleware.json +9 -0
  120. package/common/middleware/web_static/index.js +73 -0
  121. package/common/middleware/web_static/middleware.json +54 -0
  122. package/common/middleware/web_waf/index.js +385 -0
  123. package/common/middleware/web_waf/middleware.json +13 -0
  124. package/common/model/msg/index.js +88 -0
  125. package/common/model/msg/model.json +401 -0
  126. package/common/model/player/index.js +63 -0
  127. package/common/model/player/model.json +185 -0
  128. package/common/model/user/index.js +11 -0
  129. package/common/model/user/model.json +219 -0
  130. package/core/app/config.tpl.json +67 -0
  131. package/core/app/index.js +632 -0
  132. package/core/app/script.tpl.js +52 -0
  133. package/core/channel/index.js +899 -0
  134. package/core/channel/matcher.js +585 -0
  135. package/core/com/config.tpl.json +16 -0
  136. package/core/com/index.js +74 -0
  137. package/core/com/script.tpl.js +5 -0
  138. package/core/component/component.js +42 -0
  139. package/core/component/config.tpl.json +63 -0
  140. package/core/component/index.js +273 -0
  141. package/core/component/script.tpl.js +19 -0
  142. package/core/controller/config.tpl.json +14 -0
  143. package/core/controller/index.js +373 -0
  144. package/core/controller/script.tpl.js +27 -0
  145. package/core/factory/config.tpl.json +14 -0
  146. package/core/factory/entity.js +275 -0
  147. package/core/factory/index.js +241 -0
  148. package/core/factory/script.tpl.js +16 -0
  149. package/core/game/bat/index.js +137 -0
  150. package/core/game/bat/world.js +622 -0
  151. package/core/game/config.tpl.json +16 -0
  152. package/core/game/entity_admin.js +230 -0
  153. package/core/game/index.js +186 -0
  154. package/core/handler/config.tpl.json +22 -0
  155. package/core/handler/index.js +181 -0
  156. package/core/handler/script.tpl.js +23 -0
  157. package/core/logic/config.tpl.json +14 -0
  158. package/core/logic/index.js +59 -0
  159. package/core/logic/script.tpl.js +19 -0
  160. package/core/middleware/config.tpl.json +16 -0
  161. package/core/middleware/index.js +125 -0
  162. package/core/middleware/script.tpl.js +37 -0
  163. package/core/mod/config.tpl.json +22 -0
  164. package/core/mod/index.js +130 -0
  165. package/core/mod/script.tpl.js +34 -0
  166. package/core/model/config.tpl.json +219 -0
  167. package/core/model/index.js +272 -0
  168. package/core/model/model.js +27 -0
  169. package/core/model/script.tpl.js +20 -0
  170. package/core/notifier/config.tpl.json +14 -0
  171. package/core/notifier/index.js +77 -0
  172. package/core/notifier/script.tpl.js +20 -0
  173. package/core/plugin/config.tpl.json +24 -0
  174. package/core/plugin/index.js +232 -0
  175. package/core/plugin/script.tpl.js +51 -0
  176. package/core/pusher/config.tpl.json +14 -0
  177. package/core/pusher/index.js +161 -0
  178. package/core/pusher/script.tpl.js +20 -0
  179. package/core/room/bat/index.js +170 -0
  180. package/core/room/bat/room.js +524 -0
  181. package/core/room/config.tpl.json +20 -0
  182. package/core/room/index.js +249 -0
  183. package/core/room/room.js +61 -0
  184. package/core/scene/config.tpl.json +14 -0
  185. package/core/scene/index.js +466 -0
  186. package/core/scene/loop.js +1255 -0
  187. package/core/scene/map.js +28 -0
  188. package/core/scene/script.tpl.js +22 -0
  189. package/core/sender/config.tpl.json +14 -0
  190. package/core/sender/index.js +79 -0
  191. package/core/sender/script.tpl.js +20 -0
  192. package/core/service/config.tpl.json +14 -0
  193. package/core/service/index.js +100 -0
  194. package/core/service/script.tpl.js +25 -0
  195. package/core/store/config.tpl.json +26 -0
  196. package/core/store/index.js +1755 -0
  197. package/core/store/script.tpl.js +22 -0
  198. package/core/store/sql.js +1464 -0
  199. package/core/system/config.tpl.json +18 -0
  200. package/core/system/index.js +312 -0
  201. package/core/system/script.tpl.js +77 -0
  202. package/core/view/config.tpl.json +14 -0
  203. package/core/view/index.js +91 -0
  204. package/core/view/script.tpl.js +20 -0
  205. package/core/zone/bat/index.js +725 -0
  206. package/core/zone/config.tpl.json +54 -0
  207. package/core/zone/index.js +614 -0
  208. package/core/zone/script.tpl.js +10 -0
  209. package/core/zone/zone_bat.js +136 -0
  210. package/core//345/237/272/347/261/273/346/250/241/345/235/227/346/270/205/345/215/225.md +24 -0
  211. package/index.js +17 -314
  212. package/os.js +57 -0
  213. package/package.json +60 -58
  214. package/server.js +598 -0
  215. package/README.en.md +0 -36
  216. package/conf.json +0 -3
  217. package/core/base/mqtt/index.js +0 -1107
  218. package/core/base/mqtt/lib.js +0 -40
  219. package/core/base/web/index.js +0 -243
  220. package/core/com/api/com.json +0 -4
  221. package/core/com/api/drive.js +0 -668
  222. package/core/com/api/index.js +0 -108
  223. package/core/com/api/oauth.js +0 -158
  224. package/core/com/api/script.js +0 -32
  225. package/core/com/app/README.md +0 -3
  226. package/core/com/app/com.json +0 -4
  227. package/core/com/app/config.tpl.json +0 -16
  228. package/core/com/app/drive.js +0 -309
  229. package/core/com/app/index.js +0 -211
  230. package/core/com/app/script.js +0 -155
  231. package/core/com/cmd/com.json +0 -4
  232. package/core/com/cmd/config.tpl.json +0 -66
  233. package/core/com/cmd/drive.js +0 -513
  234. package/core/com/cmd/index.js +0 -354
  235. package/core/com/cmd/old/5w2h.js +0 -54
  236. package/core/com/cmd/old/drive.js +0 -423
  237. package/core/com/cmd/script.js +0 -11
  238. package/core/com/component/README.md +0 -3
  239. package/core/com/component/com.json +0 -4
  240. package/core/com/component/component.html +0 -16
  241. package/core/com/component/drive.js +0 -197
  242. package/core/com/component/index.js +0 -312
  243. package/core/com/component/script.js +0 -18
  244. package/core/com/db/com.json +0 -4
  245. package/core/com/db/drive.js +0 -1160
  246. package/core/com/db/index.js +0 -176
  247. package/core/com/event/com.json +0 -4
  248. package/core/com/event/drive.js +0 -133
  249. package/core/com/event/index.js +0 -345
  250. package/core/com/event/script.js +0 -26
  251. package/core/com/eventer/com.js +0 -477
  252. package/core/com/eventer/com.json +0 -4
  253. package/core/com/middleware/com.js +0 -153
  254. package/core/com/middleware/com.json +0 -4
  255. package/core/com/middleware/config.tpl.json +0 -8
  256. package/core/com/middleware/script.js +0 -9
  257. package/core/com/mqtt/com.json +0 -4
  258. package/core/com/mqtt/drive.js +0 -600
  259. package/core/com/mqtt/index.js +0 -572
  260. package/core/com/mqtt/mm_mqtt.js +0 -330
  261. package/core/com/mqtt/script.js +0 -604
  262. package/core/com/msg/com.js +0 -296
  263. package/core/com/msg/com.json +0 -4
  264. package/core/com/nav/com.json +0 -4
  265. package/core/com/nav/config.tpl.json +0 -75
  266. package/core/com/nav/drive.js +0 -549
  267. package/core/com/nav/index.js +0 -182
  268. package/core/com/nav/tpl/admin_pc/page_form.vue +0 -180
  269. package/core/com/nav/tpl/admin_pc/page_view.vue +0 -124
  270. package/core/com/nav/tpl/dev_pc/page_default.vue +0 -247
  271. package/core/com/nav/tpl/dev_pc/page_type.vue +0 -313
  272. package/core/com/nav/tpl/home_pc/page_default.vue +0 -234
  273. package/core/com/nav/tpl/home_pc/page_form.vue +0 -137
  274. package/core/com/nav/tpl/home_pc/page_list.vue +0 -234
  275. package/core/com/nav/tpl/home_pc/page_nav.vue +0 -221
  276. package/core/com/nav/tpl/home_pc/page_type.vue +0 -234
  277. package/core/com/nav/tpl/home_pc/page_view.vue +0 -125
  278. package/core/com/nav/tpl/home_phone/page_channel.vue +0 -234
  279. package/core/com/nav/tpl/home_phone/page_default.vue +0 -234
  280. package/core/com/nav/tpl/home_phone/page_form.vue +0 -137
  281. package/core/com/nav/tpl/home_phone/page_nav.vue +0 -237
  282. package/core/com/nav/tpl/home_phone/page_type.vue +0 -234
  283. package/core/com/nav/tpl/home_phone/page_view.vue +0 -125
  284. package/core/com/nav/viewmodel.js +0 -296
  285. package/core/com/param/drive.js +0 -366
  286. package/core/com/param/index.js +0 -80
  287. package/core/com/param/script.js +0 -12
  288. package/core/com/param/test.js +0 -98
  289. package/core/com/plugin/README.md +0 -3
  290. package/core/com/plugin/com.json +0 -4
  291. package/core/com/plugin/config.tpl.json +0 -26
  292. package/core/com/plugin/drive.js +0 -536
  293. package/core/com/plugin/index.js +0 -259
  294. package/core/com/plugin/script.js +0 -213
  295. package/core/com/rpc/com.json +0 -4
  296. package/core/com/rpc/drive.js +0 -160
  297. package/core/com/rpc/index.js +0 -87
  298. package/core/com/rpc/rpc.js +0 -118
  299. package/core/com/socket/com.json +0 -4
  300. package/core/com/socket/config.tpl.json +0 -14
  301. package/core/com/socket/drive.js +0 -403
  302. package/core/com/socket/index.js +0 -62
  303. package/core/com/socket/script.js +0 -42
  304. package/core/com/sql/drive.js +0 -1087
  305. package/core/com/sql/index.js +0 -83
  306. package/core/com/sql/script.js +0 -48
  307. package/core/com/static/com.json +0 -4
  308. package/core/com/static/drive.js +0 -220
  309. package/core/com/static/index.js +0 -149
  310. package/core/com/static/script.js +0 -28
  311. package/core/com/task/com.json +0 -4
  312. package/core/com/task/drive.js +0 -403
  313. package/core/com/task/index.js +0 -110
  314. package/core/com/task/script.js +0 -37
  315. package/core/com/timer/com.js +0 -217
  316. package/core/com/timer/com.json +0 -4
  317. package/core/com/tpl/com.js +0 -19
  318. package/core/com/tpl/com.json +0 -4
  319. package/lib/actions.js +0 -50
  320. package/lib/base.js +0 -361
  321. package/lib/com.js +0 -29
  322. package/lib/ref.js +0 -121
  323. package/middleware/mqtt_base/index.js +0 -10
  324. package/middleware/mqtt_base/middleware.json +0 -10
  325. package/middleware/performance/index.js +0 -151
  326. package/middleware/performance/middleware.json +0 -16
  327. package/middleware/security_audit/index.js +0 -549
  328. package/middleware/security_audit/middleware.json +0 -48
  329. package/middleware/security_headers/index.js +0 -487
  330. package/middleware/security_headers/middleware.json +0 -45
  331. package/middleware/waf/index.js +0 -348
  332. package/middleware/waf/middleware.json +0 -10
  333. package/middleware/waf_ddos/index.js +0 -520
  334. package/middleware/waf_ddos/middleware.json +0 -38
  335. package/middleware/waf_ip/index.js +0 -379
  336. package/middleware/waf_ip/middleware.json +0 -49
  337. package/middleware/waf_xss/index.js +0 -269
  338. package/middleware/waf_xss/middleware.json +0 -18
  339. package/middleware/web_after/index.js +0 -33
  340. package/middleware/web_after/middleware.json +0 -9
  341. package/middleware/web_base/index.js +0 -90
  342. package/middleware/web_base/middleware.json +0 -9
  343. package/middleware/web_before/index.js +0 -27
  344. package/middleware/web_before/middleware.json +0 -9
  345. package/middleware/web_check/index.js +0 -28
  346. package/middleware/web_check/middleware.json +0 -9
  347. package/middleware/web_main/index.js +0 -28
  348. package/middleware/web_main/middleware.json +0 -9
  349. package/middleware/web_proxy/index.js +0 -37
  350. package/middleware/web_proxy/middleware.json +0 -9
  351. package/middleware/web_render/index.js +0 -87
  352. package/middleware/web_render/middleware.json +0 -9
  353. package/middleware/web_socket/index.js +0 -34
  354. package/middleware/web_socket/middleware.json +0 -9
  355. package/middleware/web_static/index.js +0 -115
  356. package/middleware/web_static/middleware.json +0 -9
  357. /package/{core/com → com}/api/README.md +0 -0
  358. /package/{core/com → com}/db/README.md +0 -0
  359. /package/{core/com → com}/event/README.md +0 -0
  360. /package/{core/com → com}/mqtt/README.md +0 -0
  361. /package/{core/com → com}/nav/README.md +0 -0
  362. /package/{core/com → com}/nav/tpl/admin_pc/page_channel.vue +0 -0
  363. /package/{core/com → com}/nav/tpl/admin_pc/page_default.vue +0 -0
  364. /package/{core/com → com}/nav/tpl/admin_pc/page_lang.vue +0 -0
  365. /package/{core/com → com}/nav/tpl/admin_pc/page_nav.vue +0 -0
  366. /package/{core/com → com}/nav/tpl/admin_pc/page_table.vue +0 -0
  367. /package/{core/com → com}/nav/tpl/admin_pc/page_type.vue +0 -0
  368. /package/{core/com → com}/nav/tpl/dev_pc/page_channel.vue +0 -0
  369. /package/{core/com → com}/nav/tpl/dev_pc/page_config.vue +0 -0
  370. /package/{core/com → com}/nav/tpl/dev_pc/page_form.vue +0 -0
  371. /package/{core/com → com}/nav/tpl/dev_pc/page_nav.vue +0 -0
  372. /package/{core/com → com}/nav/tpl/dev_pc/page_table.vue +0 -0
  373. /package/{core/com → com}/nav/tpl/home_pc/page_channel.vue +0 -0
  374. /package/{core/com → com}/nav/tpl/home_phone/page_list.vue +0 -0
  375. /package/{core/com → com}/param/README.md +0 -0
  376. /package/{core/com/cmd → com/pendant}/README.md +0 -0
  377. /package/{core/com → com}/socket/README.md +0 -0
  378. /package/{core/com → com}/sql/README.md +0 -0
  379. /package/{core/com → com}/static/README.md +0 -0
  380. /package/{core/com → com}/task/README.md +0 -0
@@ -0,0 +1,351 @@
1
+ const Manager = require('mm_machine').Manager;
2
+ const Drive = require('./drive');
3
+
4
+ /**
5
+ * 任务类
6
+ * @augments {Manager}
7
+ * @class
8
+ */
9
+ class Socket extends Manager {
10
+ /**
11
+ * 配置参数
12
+ * @type {object}
13
+ */
14
+ static config = {
15
+ /**
16
+ * 名称
17
+ * @type {string}
18
+ */
19
+ name: '',
20
+ /**
21
+ * 标题
22
+ * @type {string}
23
+ */
24
+ title: 'socket管理',
25
+ /**
26
+ * 描述
27
+ * @type {string}
28
+ */
29
+ description: '这是socket管理器',
30
+ /**
31
+ * 检索文件名
32
+ * @type {string}
33
+ */
34
+ filename: 'socket.json',
35
+ /**
36
+ * 模板目录
37
+ * @type {string}
38
+ */
39
+ tpl_dir: __dirname,
40
+ /**
41
+ * 基础目录
42
+ * @type {string}
43
+ */
44
+ base_dir: '../common/socket'.fullname(__dirname),
45
+ /**
46
+ * 自定义目录,加载项目自定义资源
47
+ * @type {string}
48
+ */
49
+ dir: './app'.fullname(),
50
+ /**
51
+ * 搜索模式 dir按目录搜索 | file按文件名搜索
52
+ * @type {string}
53
+ */
54
+ search_way: 'file',
55
+ /**
56
+ * 是否懒加载
57
+ * @type {boolean}
58
+ */
59
+ lazy_load: true,
60
+ /**
61
+ * 模式
62
+ * 1.生产模式,改变文件不会重新加载
63
+ * 2.热更新模式,改变配置文件会重新加载配置,不重新加载脚本
64
+ * 3.热重载模式,改变配置文件都会加载配置和脚本
65
+ * 4.重载模式,执行完后重新加载脚本,避免变量污染
66
+ * 5.热更新+重载模式,改变配置文件重新加载配置和脚本,执行完后重新加载脚本
67
+ * @type {number}
68
+ */
69
+ mode: 3
70
+ };
71
+
72
+ /**
73
+ * 构造函数
74
+ * @param {object} config 配置参数
75
+ * @param {object} parent 父级模块
76
+ */
77
+ constructor(config, parent) {
78
+ super({ ...Socket.config, ...config }, parent);
79
+ this.dict = {};
80
+
81
+ /**
82
+ * 消息队列
83
+ */
84
+ this.list_msg = [
85
+ /*
86
+ {
87
+ // 消息ID
88
+ id: "",
89
+ // 请求方法
90
+ method: "",
91
+ // 消息参数
92
+ params: {},
93
+ // 回调函数
94
+ func: function(res){},
95
+ // 时间戳
96
+ timestamp: 0,
97
+ // 超时时间
98
+ timeout: 0,
99
+ // 定时器
100
+ timer: null
101
+ }
102
+ */
103
+ ];
104
+ }
105
+ }
106
+
107
+ /**
108
+ * socket驱动类
109
+ * @type {Drive}
110
+ */
111
+ Socket.prototype.Drive = Drive;
112
+
113
+ /**
114
+ * 处理socket请求
115
+ * @param {object} ctx 请求上下文
116
+ * @param {Function} next 跳过当前, 然后继续执行函数
117
+ */
118
+ Socket.prototype.run = async function (ctx, next) {
119
+ await next();
120
+ let path = ctx.path.toLocaleLowerCase();
121
+ var infos = this.getInfos();
122
+ for (var i = 0, info; info = infos[i++];) {
123
+ // console.log("监听webscoket路径是否正确", path === info.path);
124
+ if (info.state === 1) {
125
+ let mod = this.getMod(info.name);
126
+ if (path === info.path) {
127
+ if (mod) {
128
+ mod.add(ctx);
129
+ }
130
+ break;
131
+ }
132
+ }
133
+ }
134
+ };
135
+
136
+ /**
137
+ * 发送消息到指定客户端
138
+ * @param {string} client_id 客户端ID
139
+ * @param {string} method 方法名称
140
+ * @param {object} params 请求参数
141
+ * @returns {boolean} 发送是否成功
142
+ */
143
+ Socket.prototype.send = function (client_id, method, params) {
144
+ var mods = this.getMods();
145
+ for (var k in mods) {
146
+ var o = mods[k];
147
+ if (o.config.state === 1 && o.send) {
148
+ // 设置管理器引用,用于消息回复处理
149
+ o.manager = this;
150
+ return o.send(client_id, method, params);
151
+ }
152
+ }
153
+ return false;
154
+ };
155
+
156
+ /**
157
+ * 发送消息到所有连接的客户端
158
+ * @param {string} method 方法名称
159
+ * @param {object} params 请求参数
160
+ */
161
+ Socket.prototype.sendAll = function (method, params) {
162
+ var mods = this.getMods();
163
+ for (var k in mods) {
164
+ var o = mods[k];
165
+ if (o.config.state === 1 && o.sendAll) {
166
+ // 设置管理器引用,用于消息回复处理
167
+ o.manager = this;
168
+ o.sendAll(method, params);
169
+ }
170
+ }
171
+ };
172
+
173
+ /**
174
+ * 发送请求到指定客户端
175
+ * @param {string} client_id 客户端ID
176
+ * @param {string} method 方法名称
177
+ * @param {object} params 请求参数
178
+ * @param {Function} func 回调函数
179
+ * @param {number} timeout 超时时间(毫秒)
180
+ * @returns {boolean} 发送是否成功
181
+ */
182
+ Socket.prototype.req = function (client_id, method, params, func, timeout = 0) {
183
+ var mods = this.getMods();
184
+ for (var k in mods) {
185
+ var o = mods[k];
186
+ if (o.config.state === 1 && o.req) {
187
+ // 设置管理器引用,用于消息回复处理
188
+ o.manager = this;
189
+ return o.req(client_id, method, params, func, timeout);
190
+ }
191
+ }
192
+ return false;
193
+ };
194
+
195
+ /**
196
+ * 发送请求到所有连接的客户端
197
+ * @param {string} method 方法名称
198
+ * @param {object} params 请求参数
199
+ * @param {Function} func 回调函数
200
+ * @param {number} timeout 超时时间(毫秒)
201
+ */
202
+ Socket.prototype.reqAll = function (method, params, func, timeout = 0) {
203
+ var mods = this.getMods();
204
+ for (var k in mods) {
205
+ var o = mods[k];
206
+ if (o.config.state === 1 && o.reqAll) {
207
+ // 设置管理器引用,用于消息回复处理
208
+ o.manager = this;
209
+ o.reqAll(method, params, func, timeout);
210
+ }
211
+ }
212
+ };
213
+
214
+ /**
215
+ * 同步请求到指定客户端 - 可及时取回消息
216
+ * @param {string} client_id 客户端ID
217
+ * @param {string} method 请求方法
218
+ * @param {object} params 传递参数
219
+ * @param {number} timeout 超时时间(毫秒)
220
+ * @returns {Promise} 返回响应结果的Promise
221
+ */
222
+ Socket.prototype.reqAsync = function (client_id, method, params, timeout = 0) {
223
+ var _this = this;
224
+ return new Promise((resolve, reject) => {
225
+ _this.req(client_id, method, params, (res) => {
226
+ resolve(res);
227
+ }, timeout);
228
+ });
229
+ };
230
+
231
+ /**
232
+ * 同步请求到所有客户端 - 可及时取回消息
233
+ * @param {string} method 请求方法
234
+ * @param {object} params 传递参数
235
+ * @param {number} timeout 超时时间(毫秒)
236
+ * @returns {Promise} 返回响应结果的Promise
237
+ */
238
+ Socket.prototype.reqAsyncAll = function (method, params, timeout = 0) {
239
+ var _this = this;
240
+ return new Promise((resolve, reject) => {
241
+ _this.reqAll(method, params, (res) => {
242
+ resolve(res);
243
+ }, timeout);
244
+ });
245
+ };
246
+
247
+ /**
248
+ * 生成消息ID
249
+ * @returns {string} 消息ID
250
+ * @private
251
+ */
252
+ Socket.prototype._genId = function () {
253
+ return 'socket_' + Date.parse(new Date()) + '_' + Math.random().toString(36).substr(2, 9);
254
+ };
255
+
256
+ /**
257
+ * 根据ID移除消息
258
+ * @param {string} msg_id 消息ID
259
+ * @private
260
+ */
261
+ Socket.prototype._delMsgById = function (msg_id) {
262
+ for (var i = 0; i < this.list_msg.length; i++) {
263
+ if (this.list_msg[i].id === msg_id) {
264
+ // 清除定时器
265
+ if (this.list_msg[i].timer) {
266
+ clearTimeout(this.list_msg[i].timer);
267
+ }
268
+ this.list_msg.splice(i, 1);
269
+ break;
270
+ }
271
+ }
272
+ };
273
+
274
+ /**
275
+ * 处理消息回复
276
+ * @param {object} msg 回复消息
277
+ * @private
278
+ */
279
+ Socket.prototype._handleResponse = function (msg) {
280
+ if (!msg || !msg.id) {
281
+ return;
282
+ }
283
+
284
+ for (var i = 0; i < this.list_msg.length; i++) {
285
+ var msg_item = this.list_msg[i];
286
+ if (msg_item.id === msg.id && msg_item.func) {
287
+ try {
288
+ // 执行回调函数
289
+ msg_item.func(msg);
290
+ } catch (error) {
291
+ console.error('Socket回调函数执行错误:', error);
292
+ }
293
+
294
+ // 从列表中移除已处理的消息
295
+ this._delMsgById(msg.id);
296
+ break;
297
+ }
298
+ }
299
+ };
300
+
301
+ /**
302
+ * 更新加载插件
303
+ * @param {string} path 检索路径
304
+ */
305
+ Socket.prototype.updateConfigAll = async function (path) {
306
+ var p = path || './app/';
307
+ // 获取所有应用路径
308
+ var list_scope = $.dir.getAll(p, 'socket');
309
+
310
+ // 遍历目录路径
311
+ for (var i = 0, f; f = list_scope[i++];) {
312
+ var list_file = $.file.getAll(f, '*' + this.type + '.json');
313
+ await this.loadList(list_file);
314
+ }
315
+ };
316
+
317
+ exports.Socket = Socket;
318
+
319
+
320
+ /**
321
+ * Socket组件池
322
+ */
323
+ if (!$.pool.socket) {
324
+ $.pool.socket = {};
325
+ }
326
+
327
+ /**
328
+ * Socket管理器,用于创建缓存
329
+ * @param {string} scope 作用域
330
+ * @param {string} title 标题
331
+ * @returns {object} 返回一个缓存类
332
+ */
333
+ function socketAdmin(scope, title) {
334
+ var sc = scope || $.val.scope + '';
335
+ var obj = $.pool.socket[sc];
336
+ if (!obj) {
337
+ $.pool.socket[sc] = new Socket({
338
+ name: sc,
339
+ title: title
340
+ });
341
+ obj = $.pool.socket[sc];
342
+ }
343
+ return obj;
344
+ }
345
+
346
+ /**
347
+ * @module 导出Socket管理器
348
+ */
349
+ if ($.admin) {
350
+ $.admin.socket = socketAdmin;
351
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * 主函数, 用于处理未定义函数的消息
3
+ * @param {object} body 正文参数
4
+ * @param {object} ws Websocket服务
5
+ * @param {object} request 请求协议头
6
+ * @returns {object} 返回执行结果
7
+ */
8
+ exports.main = async function(body, ws, request) {
9
+ this.log('debug', '收到客户端推送数据', body);
10
+ };
11
+
12
+ /**
13
+ * 同步消息, 用于定时给前端推送数据
14
+ * @param {object} ws websocket通讯器
15
+ */
16
+ exports.sync = async function(ws) {
17
+ ws.send([]);
18
+ };
19
+
20
+ /**
21
+ * 初始化函数, 用于定义开放给前端的函数
22
+ */
23
+ exports.init = async function() {
24
+ var m = this.methods;
25
+
26
+ /**
27
+ * 获取所有方法
28
+ * @returns {Array} 返回所有方法名数组
29
+ */
30
+ m.getMethods = function() {
31
+ return Object.keys(m);
32
+ };
33
+
34
+ /**
35
+ * 测试方法
36
+ * @returns {string} 返回测试字符串
37
+ */
38
+ m.test = function() {
39
+ return '你好';
40
+ };
41
+ };
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "Sql",
3
+ "title": "SQL管理器",
4
+ "state": 1
5
+ }
@@ -1,22 +1,26 @@
1
1
  {
2
+ // SQL模板名称
3
+ "name": "${name}",
2
4
  // SQL模板标题
3
- "title": "示例sql模板",
5
+ "title": "${title || 'sql模板'}",
6
+ // 状态,1表示启用,0表示禁用
7
+ "state": 1,
4
8
  // 调用的数据表
5
- "table": "user_account",
9
+ "table": "${table || 'user_account'}",
6
10
  // 表主键,用于getObj查询时
7
- "key": "user_id",
11
+ "key": "${key || 'user_id'}",
8
12
  // 排序方式,{0}表示支持前端传值来排序,传值方式例如:orderby=user_id
9
13
  "orderby": "{0}",
10
14
  // 默认排序方式,当前端没有传值的情况下,采用默认传值方式
11
- "orderby_default": "`user_id` desc",
15
+ "orderby_default": "${orderby_default || 'user_id desc'}",
12
16
  // 查询列表时返回的字段,{0}表示支持前端传值
13
17
  "field": "{0}",
14
18
  // 查询对象时返回的字段
15
- "field_obj": "{0}",
19
+ "field_obj": "${field_obj || '*'}",
16
20
  // 默认返回字段
17
- "field_default": "`username`, `phone`",
21
+ "field_default": "${field_default || 'username,phone'}",
18
22
  // 需要过滤的字段,*代表泛匹配 前面*表示以xxx结尾,后面*表示以xxx开头,前后*表示包含xxx的过滤
19
- "field_hide": ["*password*", "*token*"],
23
+ "field_hide": ["*password*", "*token*", "*apikey*"],
20
24
  // 传值分隔符,如果允许多个值,可以通过这个来分割,如果不允许传多个值则设置为空
21
25
  "separator": "|",
22
26
  // 关键词,用于过滤掉这些值不会写到查询条件中,同时用来识别传的参数
@@ -54,7 +58,7 @@
54
58
  "username": "`username` = '{0}'"
55
59
  },
56
60
  // 默认查询条件
57
- "query_dedefault": {
61
+ "query_default": {
58
62
 
59
63
  },
60
64
  // 默认添加项
@@ -62,7 +66,7 @@
62
66
 
63
67
  },
64
68
  // SQL执行脚本,当设置js文件名后, 执行该SQL还将调用这个脚本
65
- "func_file": "",
69
+ "main": "",
66
70
  // 导入导出格式,转换导入、导出Eexcel时字段名和字段值
67
71
  "format": [],
68
72
  // 去重条件,需要查重、并去重的字段在这里写