@x-edu/live-player 0.0.19 → 0.0.21

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 (302) hide show
  1. package/.browserslistrc +10 -10
  2. package/.eslintignore +8 -8
  3. package/.eslintrc.js +26 -26
  4. package/.gem-mine +11 -11
  5. package/.postcssrc.js +6 -6
  6. package/README.md +145 -145
  7. package/babel.config.js +33 -33
  8. package/dist/XEduLivePlayer.common.js +12161 -1154
  9. package/dist/XEduLivePlayerPre.common.js +12369 -1358
  10. package/doc/develop.md +23 -23
  11. package/gem-mine.config.js +86 -86
  12. package/jest.config.js +9 -9
  13. package/jsconfig.json +15 -15
  14. package/mock/helper.js +8 -8
  15. package/mock/index.js +34 -34
  16. package/package.json +99 -99
  17. package/public/3rd/ali-player/alipayercomponents-1.0.8.min.js +26 -26
  18. package/public/3rd/ali-player/aliplayer-hls-min.js +27 -27
  19. package/public/3rd/ali-player/aliplayer-min.js +1 -1
  20. package/public/3rd/im-web-push/index.umd.js +14 -14
  21. package/public/JsBridge.js +1602 -1602
  22. package/public/fish/editor/themes/default/css/ueditor.css +1905 -1905
  23. package/public/fish/editor/third-party/codemirror/codemirror.css +104 -104
  24. package/public/fish/editor/third-party/codemirror/codemirror.js +3581 -3581
  25. package/public/fish/editor/third-party/zeroclipboard/ZeroClipboard.js +1255 -1255
  26. package/public/fish/editor/ueditor.all.min.js +16 -16
  27. package/public/fish/editor/ueditor.config.js +467 -467
  28. package/public/fish/icon/umd-4.1.2.js +1 -1
  29. package/public/fish/video/videoplayer.min.css +6 -6
  30. package/public/fish/video/videoplayer.min.js +31 -31
  31. package/public/fish/video/zh-CN.js +82 -82
  32. package/public/icon/demo.css +539 -539
  33. package/public/icon/demo_index.html +2189 -2189
  34. package/public/icon/iconfont.css +363 -363
  35. package/public/icon/iconfont.json +618 -618
  36. package/public/index.html +50 -50
  37. package/script/image/readme.md +77 -77
  38. package/script/postcss.js +48 -48
  39. package/src/App.jsx +24 -24
  40. package/src/asset/img/course/playing.svg +21 -21
  41. package/src/asset/img/icon-course-white.svg +3 -3
  42. package/src/asset/img/icon-course.svg +3 -3
  43. package/src/asset/img/icon-eye-white.svg +4 -4
  44. package/src/asset/img/icon-eye.svg +4 -4
  45. package/src/asset/img/icon-school-white.svg +3 -3
  46. package/src/asset/img/icon-school.svg +3 -3
  47. package/src/asset/img/loading.svg +52 -52
  48. package/src/asset/img/video-play.svg +6 -6
  49. package/src/asset/style/background.less +19 -19
  50. package/src/asset/style/banner.less +36 -36
  51. package/src/asset/style/base.less +74 -74
  52. package/src/asset/style/index.less +114 -114
  53. package/src/asset/style/reset-theme.less +141 -141
  54. package/src/asset/style/theme/index.less +55 -55
  55. package/src/asset/style/theme/party/global.less +20 -20
  56. package/src/asset/style/theme/party/override.less +57 -57
  57. package/src/asset/style/theme/test/global.less +18 -18
  58. package/src/asset/style/theme/test/override.less +45 -45
  59. package/src/asset/style/variable.less +12 -12
  60. package/src/component/AliPlayer/index.jsx +49 -49
  61. package/src/component/Avatar/index.jsx +50 -50
  62. package/src/component/Empty/index.jsx +34 -34
  63. package/src/component/Empty/index.module.less +37 -37
  64. package/src/component/IMChatroom/component/status/403.jsx +13 -13
  65. package/src/component/IMChatroom/component/status/404.jsx +13 -13
  66. package/src/component/IMChatroom/component/status/Error.jsx +23 -23
  67. package/src/component/IMChatroom/component/status/Loading.jsx +5 -5
  68. package/src/component/IMChatroom/config/app/config.js +118 -118
  69. package/src/component/IMChatroom/config/app/index.js +60 -60
  70. package/src/component/IMChatroom/config/env.js +5 -5
  71. package/src/component/IMChatroom/config/index.js +3 -3
  72. package/src/component/IMChatroom/config/request/config/base.js +124 -124
  73. package/src/component/IMChatroom/config/request/config/chatroom.js +26 -26
  74. package/src/component/IMChatroom/config/request/config/imCoreApi.js +21 -21
  75. package/src/component/IMChatroom/config/request/index.js +21 -21
  76. package/src/component/IMChatroom/config/request/proxy.js +39 -39
  77. package/src/component/IMChatroom/config/url.js +7 -7
  78. package/src/component/IMChatroom/constants/errorCode.js +9 -9
  79. package/src/component/IMChatroom/constants/index.js +84 -84
  80. package/src/component/IMChatroom/constants/origin.js +27 -27
  81. package/src/component/IMChatroom/context/chatroom.js +154 -154
  82. package/src/component/IMChatroom/context/connect.js +28 -28
  83. package/src/component/IMChatroom/i18n/en/index.json +73 -73
  84. package/src/component/IMChatroom/i18n/index.jsx +14 -14
  85. package/src/component/IMChatroom/i18n/language.js +9 -9
  86. package/src/component/IMChatroom/i18n/zh-CN/index.json +73 -73
  87. package/src/component/IMChatroom/index.jsx +49 -49
  88. package/src/component/IMChatroom/page/chat/index.jsx +27 -27
  89. package/src/component/IMChatroom/page/chat/messageEditor/index.jsx +375 -375
  90. package/src/component/IMChatroom/page/chat/messageList/index.jsx +354 -354
  91. package/src/component/IMChatroom/page/chat/stickedMessage/index.jsx +59 -59
  92. package/src/component/IMChatroom/page/chat/stickedMessage/style/index.module.less +7 -7
  93. package/src/component/IMChatroom/page/chat/style/index.module.less +51 -51
  94. package/src/component/IMChatroom/page/home/connect/index.jsx +188 -188
  95. package/src/component/IMChatroom/page/home/connect/status.jsx +124 -124
  96. package/src/component/IMChatroom/page/home/context/cmd.jsx +37 -37
  97. package/src/component/IMChatroom/page/home/context/index.jsx +67 -67
  98. package/src/component/IMChatroom/page/home/index.jsx +164 -164
  99. package/src/component/IMChatroom/page/home/notice/index.jsx +123 -123
  100. package/src/component/IMChatroom/page/home/notice/style/index.module.less +49 -49
  101. package/src/component/IMChatroom/page/home/style/index.module.less +110 -110
  102. package/src/component/IMChatroom/page/member/index.jsx +15 -15
  103. package/src/component/IMChatroom/page/member/memberCount/index.jsx +44 -44
  104. package/src/component/IMChatroom/page/member/memberList/index.jsx +121 -121
  105. package/src/component/IMChatroom/page/member/style/index.module.less +2 -2
  106. package/src/component/IMChatroom/sdk/bridge.js +39 -39
  107. package/src/component/IMChatroom/sdk/cs/constants.js +20 -20
  108. package/src/component/IMChatroom/sdk/cs/index.js +101 -101
  109. package/src/component/IMChatroom/sdk/imChatroom.js +15 -15
  110. package/src/component/IMChatroom/sdk/imcore/constants.js +128 -128
  111. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomDestroyed.js +5 -5
  112. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomInfoGetFail.js +5 -5
  113. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedByAdmin.js +5 -5
  114. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedBySelf.js +5 -5
  115. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginFail.js +5 -5
  116. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginSuccess.js +5 -5
  117. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogin.js +5 -5
  118. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogout.js +5 -5
  119. package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnected.js +5 -5
  120. package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnecting.js +5 -5
  121. package/src/component/IMChatroom/sdk/imcore/emitters/connectionDisconnect.js +5 -5
  122. package/src/component/IMChatroom/sdk/imcore/emitters/index.js +57 -57
  123. package/src/component/IMChatroom/sdk/imcore/emitters/messageReceive.js +36 -36
  124. package/src/component/IMChatroom/sdk/imcore/index.js +178 -178
  125. package/src/component/IMChatroom/sdk/imcore/interceptors/request.js +7 -7
  126. package/src/component/IMChatroom/sdk/imcore/interceptors/response.js +5 -5
  127. package/src/component/IMChatroom/sdk/imcore/plugins/getAuth.js +64 -64
  128. package/src/component/IMChatroom/sdk/imcore/plugins/getConversationId.js +20 -20
  129. package/src/component/IMChatroom/sdk/imcore/plugins/getExtInfo.js +10 -10
  130. package/src/component/IMChatroom/sdk/imcore/plugins/getLoginInfo.js +48 -48
  131. package/src/component/IMChatroom/sdk/imcore/plugins/getPlatformType.js +12 -12
  132. package/src/component/IMChatroom/sdk/imcore/plugins/index.js +22 -22
  133. package/src/component/IMChatroom/sdk/imcore/util/format.js +177 -177
  134. package/src/component/IMChatroom/sdk/imcore/util/parser.js +35 -35
  135. package/src/component/IMChatroom/sdk/oms.js +18 -18
  136. package/src/component/IMChatroom/sdk/uc.js +3 -3
  137. package/src/component/IMChatroom/subscription/channel/app.js +5 -5
  138. package/src/component/IMChatroom/subscription/channel/ctl.js +22 -22
  139. package/src/component/IMChatroom/subscription/channel/member.js +40 -40
  140. package/src/component/IMChatroom/subscription/channel/message.js +13 -13
  141. package/src/component/IMChatroom/subscription/channel/ntf.js +86 -86
  142. package/src/component/IMChatroom/subscription/channel/tel.js +5 -5
  143. package/src/component/IMChatroom/subscription/channel/websocket.js +5 -5
  144. package/src/component/IMChatroom/subscription/event.js +37 -37
  145. package/src/component/IMChatroom/subscription/index.js +19 -19
  146. package/src/component/IMChatroom/util/account.js +8 -8
  147. package/src/component/IMChatroom/util/chatroom.js +255 -255
  148. package/src/component/IMChatroom/util/jsonBigInt.js +5 -5
  149. package/src/component/IMChatroom/util/location.js +12 -12
  150. package/src/component/Icon/index.jsx +16 -16
  151. package/src/component/Icon/index.module.less +2 -2
  152. package/src/component/Pagination/LocalPagination.jsx +27 -27
  153. package/src/component/Pagination/RemotePagination.jsx +32 -32
  154. package/src/component/Pagination/index.jsx +31 -31
  155. package/src/component/Pagination/index.module.less +110 -110
  156. package/src/component/PlayerTip/index.jsx +34 -34
  157. package/src/component/VideoBase/index.jsx +242 -242
  158. package/src/component/VideoBase/style.less +65 -65
  159. package/src/component/VideoBase/utils.js +81 -81
  160. package/src/component/mixin.less +9 -9
  161. package/src/component/status/403.jsx +15 -15
  162. package/src/component/status/404/index.jsx +73 -73
  163. package/src/component/status/404/index.module.less +36 -36
  164. package/src/component/status/Error/error.module.less +13 -13
  165. package/src/component/status/Error/index.jsx +47 -47
  166. package/src/component/status/Loading/img/loading.svg +52 -52
  167. package/src/component/status/Loading/index.jsx +31 -31
  168. package/src/component/status/Loading/index.less +56 -56
  169. package/src/component/status/None/index.jsx +20 -20
  170. package/src/component/status/None/index.module.less +35 -35
  171. package/src/component/status/Status/index.jsx +26 -26
  172. package/src/component/status/Status/index.module.less +8 -8
  173. package/src/config/constant/commonUrl.js +2 -2
  174. package/src/config/constant/user.js +6 -6
  175. package/src/config/context/site-config.js +48 -48
  176. package/src/config/env/index.js +5 -5
  177. package/src/config/env/local/index.js +13 -13
  178. package/src/config/env/ncet-xedu/api.js +175 -175
  179. package/src/config/env/ncet-xedu/app.js +12 -12
  180. package/src/config/env/ncet-xedu/cs.js +8 -8
  181. package/src/config/env/ncet-xedu/index.js +14 -14
  182. package/src/config/env/ncet-xedu/push.js +5 -5
  183. package/src/config/env/preproduction/api.js +144 -144
  184. package/src/config/env/preproduction/app.js +12 -12
  185. package/src/config/env/preproduction/cs.js +8 -8
  186. package/src/config/env/preproduction/index.js +14 -14
  187. package/src/config/env/preproduction/push.js +5 -5
  188. package/src/config/env/product/api.js +113 -113
  189. package/src/config/env/product/app.js +12 -12
  190. package/src/config/env/product/cs.js +5 -5
  191. package/src/config/env/product/index.js +14 -14
  192. package/src/config/env/product/push.js +5 -5
  193. package/src/config/live.js +80 -80
  194. package/src/config/publicLive.js +53 -53
  195. package/src/config/request/assessments.js +24 -24
  196. package/src/config/request/config-center.js +8 -8
  197. package/src/config/request/helper.js +166 -166
  198. package/src/config/request/im-broadcasts.js +12 -12
  199. package/src/config/request/live-activity-gateway.js +8 -8
  200. package/src/config/request/live-activity.js +13 -13
  201. package/src/config/request/raw.js +6 -6
  202. package/src/config/request/x-cloud-web.js +13 -13
  203. package/src/config/request/x-proxy.js +34 -34
  204. package/src/demo/Detail.jsx +11 -11
  205. package/src/demo/List.jsx +64 -64
  206. package/src/demo/index.jsx +17 -17
  207. package/src/detail/LineSwitch/index.jsx +71 -71
  208. package/src/detail/LiveCountDown/index.jsx +44 -44
  209. package/src/detail/LiveCountDown/index.module.less +31 -31
  210. package/src/detail/LiveOnlineCount/img/icon.svg +15 -15
  211. package/src/detail/LiveOnlineCount/index.jsx +68 -68
  212. package/src/detail/LiveOnlineCount/index.module.less +34 -34
  213. package/src/detail/LiveOnlineCount/util.js +74 -74
  214. package/src/detail/LiveStatus/AnchorOnTheWay.jsx +88 -88
  215. package/src/detail/LiveStatus/index.jsx +202 -202
  216. package/src/detail/LiveStatus/index.module.less +192 -192
  217. package/src/detail/LiveVideo/config.js +37 -37
  218. package/src/detail/LiveVideo/index.jsx +188 -188
  219. package/src/detail/LiveVideo/index.module.less +41 -41
  220. package/src/detail/NotLoginChatroom/index.jsx +37 -37
  221. package/src/detail/NotLoginChatroom/index.module.less +46 -46
  222. package/src/detail/RecordVideo/index.jsx +150 -150
  223. package/src/detail/RecordVideo/index.module.less +31 -31
  224. package/src/detail/ReplayVideo/index.jsx +93 -93
  225. package/src/detail/ReplayVideo/index.module.less +65 -65
  226. package/src/detail/const.js +20 -20
  227. package/src/detail/hook/usePullSource.js +82 -82
  228. package/src/detail/hook/usePullState.js +51 -51
  229. package/src/detail/index.jsx +482 -482
  230. package/src/detail/index.module.less +188 -188
  231. package/src/hook/useAsync.js +84 -84
  232. package/src/hook/useGoToPage.js +83 -83
  233. package/src/hook/useInterval.js +28 -28
  234. package/src/hook/useIsMounted.js +17 -17
  235. package/src/hook/useModuleByRole.js +53 -53
  236. package/src/hook/usePageScrollable.js +52 -52
  237. package/src/hook/usePortal.js +83 -83
  238. package/src/hook/useScrollRestore/index.js +32 -32
  239. package/src/hook/useScrollRestore/scrollContext.js +20 -20
  240. package/src/hook/useTrackRef.js +11 -11
  241. package/src/hook/useWindowSize.js +28 -28
  242. package/src/hook/useZoom.js +47 -47
  243. package/src/index.js +10 -10
  244. package/src/lib/getLiveOnlineCount.js +10 -10
  245. package/src/lib/getServiceConfig.js +102 -102
  246. package/src/list/Empty/index.jsx +20 -20
  247. package/src/list/Empty/index.module.less +23 -23
  248. package/src/list/ListItem/Action/index.jsx +98 -98
  249. package/src/list/ListItem/Action/index.module.less +21 -21
  250. package/src/list/ListItem/img/dianzan.svg +4 -0
  251. package/src/list/ListItem/img/play.svg +15 -15
  252. package/src/list/ListItem/img/yiguankan.svg +3 -0
  253. package/src/list/ListItem/index.jsx +24 -1
  254. package/src/list/ListItem/index.module.less +146 -123
  255. package/src/list/index.jsx +80 -0
  256. package/src/list/index.module.less +35 -35
  257. package/src/service/common.js +73 -73
  258. package/src/service/content-mgr.js +73 -73
  259. package/src/service/im-group.js +12 -12
  260. package/src/service/im.js +7 -7
  261. package/src/service/imBroadcasts.js +33 -33
  262. package/src/service/like.js +134 -134
  263. package/src/service/manageApi.js +7 -7
  264. package/src/service/managePortal.js +6 -6
  265. package/src/service/myStudyRecord.js +93 -93
  266. package/src/service/navigation.js +47 -47
  267. package/src/service/ndMeeting.js +10 -10
  268. package/src/service/ndr.js +122 -122
  269. package/src/service/news.js +93 -93
  270. package/src/service/personalCenter.js +270 -270
  271. package/src/service/qualityCourse.js +31 -31
  272. package/src/service/recommend.js +81 -81
  273. package/src/service/school.js +323 -323
  274. package/src/service/search.js +170 -170
  275. package/src/service/site-config.js +7 -7
  276. package/src/service/socialCensor.js +45 -45
  277. package/src/service/specialEdu.js +31 -31
  278. package/src/service/suggestion.js +85 -85
  279. package/src/service/syncClassroom.js +321 -321
  280. package/src/service/tCourse.js +204 -204
  281. package/src/service/tchTraining.js +37 -37
  282. package/src/service/uc.js +45 -45
  283. package/src/util/app.js +1 -1
  284. package/src/util/array.js +3 -3
  285. package/src/util/auth/func.js +57 -57
  286. package/src/util/date.js +53 -53
  287. package/src/util/env.js +9 -9
  288. package/src/util/getTimestamp.js +10 -10
  289. package/src/util/hof.js +105 -105
  290. package/src/util/live/index.js +42 -42
  291. package/src/util/liveCountUtil.js +52 -0
  292. package/src/util/netUrl.js +35 -35
  293. package/src/util/object.js +13 -13
  294. package/src/util/push/index.js +58 -58
  295. package/src/util/request.js +227 -227
  296. package/src/util/type.js +17 -17
  297. package/src/util/url.js +203 -203
  298. package/src/util/video.js +26 -26
  299. package/test/setup.js +21 -21
  300. package/test/unit/component/header/logo.spec.jsx +8 -8
  301. package/test/unit/helper.jsx +25 -25
  302. package/test/unit/util/date.spec.js +40 -40
@@ -1,5 +1,5 @@
1
- import subscription from '../../../subscription'
2
-
3
- export default function connectionDisconnect(data) {
4
- subscription.websocket.publish(subscription.EVENT.DISCONNECT, data)
5
- }
1
+ import subscription from '../../../subscription'
2
+
3
+ export default function connectionDisconnect(data) {
4
+ subscription.websocket.publish(subscription.EVENT.DISCONNECT, data)
5
+ }
@@ -1,57 +1,57 @@
1
- import IMCoreChatroom from '@ndim/chatroom'
2
-
3
- import chatroomInfoGetFail from './chatroomInfoGetFail'
4
- import chatroomKickedBySelf from './chatroomKickedBySelf'
5
- import chatroomKickedByAdmin from './chatroomKickedByAdmin'
6
- import chatroomDestroyed from './chatroomDestroyed'
7
- import chatroomLoginFail from './chatroomLoginFail'
8
- import chatroomLoginSuccess from './chatroomLoginSuccess'
9
- import chatroomMemberLogin from './chatroomMemberLogin'
10
- import chatroomMemberLogout from './chatroomMemberLogout'
11
- import connectionConnected from './connectionConnected'
12
- import connectionConnecting from './connectionConnecting'
13
- import connectionDisconnect from './connectionDisconnect'
14
- import messageReceive from './messageReceive'
15
-
16
- const actions = {
17
- [IMCoreChatroom.ChatroomConnectionEvent.GetChatroomInfoFail]: chatroomInfoGetFail,
18
- [IMCoreChatroom.ChatroomConnectionEvent.ChatroomKickedBySelf]: chatroomKickedBySelf,
19
- [IMCoreChatroom.ChatroomConnectionEvent.ChatroomKickedByAdmin]: chatroomKickedByAdmin,
20
- [IMCoreChatroom.ChatroomConnectionEvent.ChatroomDestroyed]: chatroomDestroyed,
21
- [IMCoreChatroom.ChatroomConnectionEvent.LoginChatroomFail]: chatroomLoginFail,
22
- [IMCoreChatroom.ChatroomConnectionEvent.LoginChatroomSuccess]: chatroomLoginSuccess,
23
- [IMCoreChatroom.ChatroomConnectionEvent.ChatroomMemberLogin]: chatroomMemberLogin,
24
- [IMCoreChatroom.ChatroomConnectionEvent.ChatroomMemberLogout]: chatroomMemberLogout,
25
- [IMCoreChatroom.ConnectionEvent.Open]: undefined,
26
- [IMCoreChatroom.ConnectionEvent.Connected]: connectionConnected,
27
- [IMCoreChatroom.ConnectionEvent.Reconnecting]: connectionConnecting,
28
- [IMCoreChatroom.ConnectionEvent.Disconnect]: connectionDisconnect,
29
- [IMCoreChatroom.ConnectionEvent.Kicked]: chatroomKickedBySelf,
30
- [IMCoreChatroom.ConnectionEvent.KickedForRedirect]: undefined,
31
- [IMCoreChatroom.ConnectionEvent.Close]: undefined,
32
- [IMCoreChatroom.ConnectionEvent.Error]: undefined,
33
- [IMCoreChatroom.ConnectionEvent.LoginFail]: undefined,
34
- [IMCoreChatroom.MessageEvent.Receive.Inbox]: messageReceive
35
- }
36
-
37
- const emitters = {}
38
- Object.keys(actions).forEach((key) => {
39
- emitters[key] = (...args) => {
40
- if (
41
- ![
42
- IMCoreChatroom.ChatroomConnectionEvent.ChatroomMemberLogin,
43
- IMCoreChatroom.ChatroomConnectionEvent.ChatroomMemberLogout,
44
- IMCoreChatroom.MessageEvent.Receive.Inbox
45
- ].some((actionName) => actionName === key)
46
- ) {
47
- // thirdParty.onPostMessage(thirdParty.EVENT.CONNECT_STATUS, key)
48
- }
49
-
50
- const action = actions[key]
51
- if (action) {
52
- action(...args)
53
- }
54
- }
55
- })
56
-
57
- export default emitters
1
+ import IMCoreChatroom from '@ndim/chatroom'
2
+
3
+ import chatroomInfoGetFail from './chatroomInfoGetFail'
4
+ import chatroomKickedBySelf from './chatroomKickedBySelf'
5
+ import chatroomKickedByAdmin from './chatroomKickedByAdmin'
6
+ import chatroomDestroyed from './chatroomDestroyed'
7
+ import chatroomLoginFail from './chatroomLoginFail'
8
+ import chatroomLoginSuccess from './chatroomLoginSuccess'
9
+ import chatroomMemberLogin from './chatroomMemberLogin'
10
+ import chatroomMemberLogout from './chatroomMemberLogout'
11
+ import connectionConnected from './connectionConnected'
12
+ import connectionConnecting from './connectionConnecting'
13
+ import connectionDisconnect from './connectionDisconnect'
14
+ import messageReceive from './messageReceive'
15
+
16
+ const actions = {
17
+ [IMCoreChatroom.ChatroomConnectionEvent.GetChatroomInfoFail]: chatroomInfoGetFail,
18
+ [IMCoreChatroom.ChatroomConnectionEvent.ChatroomKickedBySelf]: chatroomKickedBySelf,
19
+ [IMCoreChatroom.ChatroomConnectionEvent.ChatroomKickedByAdmin]: chatroomKickedByAdmin,
20
+ [IMCoreChatroom.ChatroomConnectionEvent.ChatroomDestroyed]: chatroomDestroyed,
21
+ [IMCoreChatroom.ChatroomConnectionEvent.LoginChatroomFail]: chatroomLoginFail,
22
+ [IMCoreChatroom.ChatroomConnectionEvent.LoginChatroomSuccess]: chatroomLoginSuccess,
23
+ [IMCoreChatroom.ChatroomConnectionEvent.ChatroomMemberLogin]: chatroomMemberLogin,
24
+ [IMCoreChatroom.ChatroomConnectionEvent.ChatroomMemberLogout]: chatroomMemberLogout,
25
+ [IMCoreChatroom.ConnectionEvent.Open]: undefined,
26
+ [IMCoreChatroom.ConnectionEvent.Connected]: connectionConnected,
27
+ [IMCoreChatroom.ConnectionEvent.Reconnecting]: connectionConnecting,
28
+ [IMCoreChatroom.ConnectionEvent.Disconnect]: connectionDisconnect,
29
+ [IMCoreChatroom.ConnectionEvent.Kicked]: chatroomKickedBySelf,
30
+ [IMCoreChatroom.ConnectionEvent.KickedForRedirect]: undefined,
31
+ [IMCoreChatroom.ConnectionEvent.Close]: undefined,
32
+ [IMCoreChatroom.ConnectionEvent.Error]: undefined,
33
+ [IMCoreChatroom.ConnectionEvent.LoginFail]: undefined,
34
+ [IMCoreChatroom.MessageEvent.Receive.Inbox]: messageReceive
35
+ }
36
+
37
+ const emitters = {}
38
+ Object.keys(actions).forEach((key) => {
39
+ emitters[key] = (...args) => {
40
+ if (
41
+ ![
42
+ IMCoreChatroom.ChatroomConnectionEvent.ChatroomMemberLogin,
43
+ IMCoreChatroom.ChatroomConnectionEvent.ChatroomMemberLogout,
44
+ IMCoreChatroom.MessageEvent.Receive.Inbox
45
+ ].some((actionName) => actionName === key)
46
+ ) {
47
+ // thirdParty.onPostMessage(thirdParty.EVENT.CONNECT_STATUS, key)
48
+ }
49
+
50
+ const action = actions[key]
51
+ if (action) {
52
+ action(...args)
53
+ }
54
+ }
55
+ })
56
+
57
+ export default emitters
@@ -1,36 +1,36 @@
1
- // import get from 'lodash/get'
2
-
3
- import subscription from '../../../subscription'
4
- import appConfig from '../../../config/app'
5
- import bridge from '../../bridge'
6
- // import { MESSAGE_TYPE } from '../../../constants'
7
-
8
- import { transferLongToString, formatMessages } from '../util/format'
9
-
10
- export default function messageReceive(data) {
11
- console.log('message.receive', data)
12
- let messages = []
13
- data.forEach((items) => {
14
- messages = messages.concat(items)
15
- })
16
-
17
- const items = formatMessages(messages.map((message) => transferLongToString(message)))
18
-
19
- // items.forEach((message) => {
20
- // const messageType = get(message, '_parsedContent.type')
21
- // if ([MESSAGE_TYPE.CTL, MESSAGE_TYPE.NTF, MESSAGE_TYPE.TEL].some((type) => messageType === type)) {
22
- // thirdParty.onPostMessage(thirdParty.EVENT.CMD, message)
23
- // }
24
- // })
25
-
26
- if (appConfig.get('chatroomChatMessageList.filterMessages')) {
27
- return bridge.register('filterMessages', {
28
- type: 'new',
29
- messages: items
30
- }).then(({ messages: newMessages }) => {
31
- subscription.websocket.publish(subscription.EVENT.RECEIVE_MESSAGES, newMessages)
32
- })
33
- } else {
34
- subscription.websocket.publish(subscription.EVENT.RECEIVE_MESSAGES, items)
35
- }
36
- }
1
+ // import get from 'lodash/get'
2
+
3
+ import subscription from '../../../subscription'
4
+ import appConfig from '../../../config/app'
5
+ import bridge from '../../bridge'
6
+ // import { MESSAGE_TYPE } from '../../../constants'
7
+
8
+ import { transferLongToString, formatMessages } from '../util/format'
9
+
10
+ export default function messageReceive(data) {
11
+ console.log('message.receive', data)
12
+ let messages = []
13
+ data.forEach((items) => {
14
+ messages = messages.concat(items)
15
+ })
16
+
17
+ const items = formatMessages(messages.map((message) => transferLongToString(message)))
18
+
19
+ // items.forEach((message) => {
20
+ // const messageType = get(message, '_parsedContent.type')
21
+ // if ([MESSAGE_TYPE.CTL, MESSAGE_TYPE.NTF, MESSAGE_TYPE.TEL].some((type) => messageType === type)) {
22
+ // thirdParty.onPostMessage(thirdParty.EVENT.CMD, message)
23
+ // }
24
+ // })
25
+
26
+ if (appConfig.get('chatroomChatMessageList.filterMessages')) {
27
+ return bridge.register('filterMessages', {
28
+ type: 'new',
29
+ messages: items
30
+ }).then(({ messages: newMessages }) => {
31
+ subscription.websocket.publish(subscription.EVENT.RECEIVE_MESSAGES, newMessages)
32
+ })
33
+ } else {
34
+ subscription.websocket.publish(subscription.EVENT.RECEIVE_MESSAGES, items)
35
+ }
36
+ }
@@ -1,178 +1,178 @@
1
- import IMCoreChatroom from '@ndim/chatroom'
2
- import { reverse } from 'lodash'
3
-
4
- import getUCInstance from '../uc'
5
- import { getCurrentAccount, getCurrentAccountId } from '../../util/account'
6
- import appConfig from '../../config/app'
7
- import bridge from '../bridge'
8
- import * as C from '../../constants'
9
-
10
- import loadPlugins from './plugins'
11
- import { imCoreOrigin, imCoreApiOrigin, ContentType, MessageTypeMap } from './constants'
12
- import requestInterceptors from './interceptors/request'
13
- import responseInterceptors from './interceptors/response'
14
- import emitters from './emitters'
15
- import { transferStringToLong, transferLongToString, formatMessages } from './util/format'
16
- import getUserInfoWithCache from '../oms'
17
-
18
- // eslint-disable-next-line import/no-mutable-exports
19
- let imCoreChatroom = null
20
-
21
- // eslint-disable-next-line import/prefer-default-export
22
- export const initIMCoreChatroom = () => new Promise((resolve, reject) => getUCInstance().getTokenAsync().then((token) => {
23
- loadPlugins(token, getCurrentAccount())
24
-
25
- imCoreChatroom = new IMCoreChatroom({
26
- server: { // webSocket 配置
27
- wsUrl: appConfig.get('wsUrl') || imCoreOrigin, // IMCore 服务端 webSocket 服务器响应地址,必填
28
- wsProtocols: '', // webSocket 子协议
29
- apiHost: imCoreApiOrigin, // IMCoreApi 服务地址,必填
30
- cachePrefix: appConfig.get('business')
31
- },
32
- autoAck: true, // 是否自动 ack 消息(即:是否自动通知服务端已接收到的最大的收件箱消息id),默认 false,选填
33
- listenConversationChange: false, // 是否监听会话变更,若监听,会话变更后将更新会话已读游标等,默认 true,选填
34
- messageCompletion: { // 消息补齐配置,选填
35
- enable: false, // 是否开启
36
- interval: 500, // 补齐频率,默认 500,单位,毫秒
37
- untilAgo: 1 // 补齐多少天的消息,默认 15,单位,天
38
- }
39
- })
40
-
41
- console.log('imCoreChatroom', imCoreChatroom)
42
-
43
- // 设置请求拦截器
44
- imCoreChatroom.request.instance.interceptors.request.use(...requestInterceptors)
45
- imCoreChatroom.request.instance.interceptors.response.use(...responseInterceptors)
46
-
47
- // 注册emitter事件
48
- Object.keys(emitters).forEach((emitterName) => {
49
- imCoreChatroom.emitter.on(emitterName, emitters[emitterName].bind(imCoreChatroom))
50
- })
51
-
52
- // 连接登录聊天室
53
- imCoreChatroom.connect(getCurrentAccountId())
54
-
55
- resolve(imCoreChatroom)
56
- }).catch((error) => {
57
- reject(error)
58
- }))
59
-
60
- export const getIMCoreChatroom = () => imCoreChatroom
61
-
62
- export const reconnectIMCoreChatroom = () => {
63
- imCoreChatroom.connect(getCurrentAccountId())
64
- }
65
-
66
- const __sendMessage = (message, online) => {
67
- if (!online) {
68
- return Promise.resolve(formatMessages([{
69
- ...message,
70
- from: getCurrentAccountId(),
71
- content: message.buildContent()
72
- }])[0])
73
- }
74
- return imCoreChatroom.sendMessage({
75
- time: null,
76
- seq: null,
77
- qos: 0,
78
- resendFlag: 0,
79
- convtype: 3,
80
- buildContent: message.buildContent.bind(message)
81
- }).then((res) => {
82
- const data = transferLongToString(res)
83
- return {
84
- id: data.msgId,
85
- seq: data.msgSeq,
86
- time: data.msgTime,
87
- _direction: 'up',
88
- _localInfo: {
89
- id: data.msgId,
90
- index: 0
91
- }
92
- }
93
- })
94
- }
95
-
96
- const _sendMessage = async (contentType, contentBody, online, headers) => {
97
- const messageType = MessageTypeMap[contentType]
98
- const message = new IMCoreChatroom.MessageConstructor[messageType]()
99
- if (headers) {
100
- message.setHeaders(headers)
101
- }
102
-
103
- if (contentType === ContentType.Text && contentBody.length > 500) {
104
- let result
105
- for (let i = 0; i < contentBody.length; i += 500) {
106
- const body = contentBody.substring(i, i + 500)
107
- message.setBody(body)
108
- result = await __sendMessage(message, online)
109
- }
110
- return result
111
- }
112
-
113
- let body = contentBody
114
- if (messageType === ContentType.Image) {
115
- body = body.replace('fullimage', 'fullImage')
116
- }
117
- message.setBody(body)
118
- return __sendMessage(message, online)
119
- }
120
-
121
- export const sendMessage = async (contentType, contentBody, online) => {
122
- if (appConfig.get('messageEditor.getMessageHeaders')) {
123
- return bridge.register('getMessageHeaders').then((headers) => _sendMessage(contentType, contentBody, online, headers))
124
- } else {
125
- const userId = await getCurrentAccountId()
126
- const userInfo = await getUserInfoWithCache(userId)
127
- return _sendMessage(contentType, contentBody, online,
128
- {
129
- 'Content-Sender': {
130
- user_id: userId,
131
- nick_name: userInfo.real_name
132
- }
133
- })
134
- }
135
- }
136
-
137
- export const getHistoryMessages = (id, limit) => imCoreChatroom.getHistoryMessages(transferStringToLong(id), limit)
138
- .then((messages) => {
139
- const items = reverse(formatMessages(messages.map((message) => transferLongToString(message))))
140
-
141
- // items.forEach((message) => {
142
- // const messageType = get(message, '_parsedContent.type')
143
- // if ([C.MESSAGE_TYPE.CTL, C.MESSAGE_TYPE.NTF, C.MESSAGE_TYPE.TEL].some((type) => messageType === type)) {
144
- // thirdParty.onPostMessage(thirdParty.EVENT.CMD, message)
145
- // }
146
- // })
147
-
148
- const hasMore = items.length > 0 && items[0].id !== C.MIM_CONV_MSG_ID
149
- if (appConfig.get('chatroomChatMessageList.filterMessages')) {
150
- return bridge.register('filterMessages', {
151
- type: 'history',
152
- messages: items,
153
- hasMore
154
- })
155
- }
156
- return {
157
- messages: items,
158
- hasMore
159
- }
160
- })
161
-
162
- export const subscribeOnlineStatus = () => imCoreChatroom.subscribeOnlineStatus()
163
-
164
- export const recallMessage = (message) => {
165
- if (appConfig.get('chatroomChatMessageList.getRecallMessageExtInfo')) {
166
- return bridge.register('getRecallMessageExtInfo', message).then(
167
- (extInfo) => imCoreChatroom.recallMessage({
168
- time: transferStringToLong(message.time),
169
- id: transferStringToLong(message.id)
170
- }, extInfo)
171
- )
172
- } else {
173
- return imCoreChatroom.recallMessage({
174
- time: transferStringToLong(message.time),
175
- id: transferStringToLong(message.id)
176
- })
177
- }
178
- }
1
+ import IMCoreChatroom from '@ndim/chatroom'
2
+ import { reverse } from 'lodash'
3
+
4
+ import getUCInstance from '../uc'
5
+ import { getCurrentAccount, getCurrentAccountId } from '../../util/account'
6
+ import appConfig from '../../config/app'
7
+ import bridge from '../bridge'
8
+ import * as C from '../../constants'
9
+
10
+ import loadPlugins from './plugins'
11
+ import { imCoreOrigin, imCoreApiOrigin, ContentType, MessageTypeMap } from './constants'
12
+ import requestInterceptors from './interceptors/request'
13
+ import responseInterceptors from './interceptors/response'
14
+ import emitters from './emitters'
15
+ import { transferStringToLong, transferLongToString, formatMessages } from './util/format'
16
+ import getUserInfoWithCache from '../oms'
17
+
18
+ // eslint-disable-next-line import/no-mutable-exports
19
+ let imCoreChatroom = null
20
+
21
+ // eslint-disable-next-line import/prefer-default-export
22
+ export const initIMCoreChatroom = () => new Promise((resolve, reject) => getUCInstance().getTokenAsync().then((token) => {
23
+ loadPlugins(token, getCurrentAccount())
24
+
25
+ imCoreChatroom = new IMCoreChatroom({
26
+ server: { // webSocket 配置
27
+ wsUrl: appConfig.get('wsUrl') || imCoreOrigin, // IMCore 服务端 webSocket 服务器响应地址,必填
28
+ wsProtocols: '', // webSocket 子协议
29
+ apiHost: imCoreApiOrigin, // IMCoreApi 服务地址,必填
30
+ cachePrefix: appConfig.get('business')
31
+ },
32
+ autoAck: true, // 是否自动 ack 消息(即:是否自动通知服务端已接收到的最大的收件箱消息id),默认 false,选填
33
+ listenConversationChange: false, // 是否监听会话变更,若监听,会话变更后将更新会话已读游标等,默认 true,选填
34
+ messageCompletion: { // 消息补齐配置,选填
35
+ enable: false, // 是否开启
36
+ interval: 500, // 补齐频率,默认 500,单位,毫秒
37
+ untilAgo: 1 // 补齐多少天的消息,默认 15,单位,天
38
+ }
39
+ })
40
+
41
+ console.log('imCoreChatroom', imCoreChatroom)
42
+
43
+ // 设置请求拦截器
44
+ imCoreChatroom.request.instance.interceptors.request.use(...requestInterceptors)
45
+ imCoreChatroom.request.instance.interceptors.response.use(...responseInterceptors)
46
+
47
+ // 注册emitter事件
48
+ Object.keys(emitters).forEach((emitterName) => {
49
+ imCoreChatroom.emitter.on(emitterName, emitters[emitterName].bind(imCoreChatroom))
50
+ })
51
+
52
+ // 连接登录聊天室
53
+ imCoreChatroom.connect(getCurrentAccountId())
54
+
55
+ resolve(imCoreChatroom)
56
+ }).catch((error) => {
57
+ reject(error)
58
+ }))
59
+
60
+ export const getIMCoreChatroom = () => imCoreChatroom
61
+
62
+ export const reconnectIMCoreChatroom = () => {
63
+ imCoreChatroom.connect(getCurrentAccountId())
64
+ }
65
+
66
+ const __sendMessage = (message, online) => {
67
+ if (!online) {
68
+ return Promise.resolve(formatMessages([{
69
+ ...message,
70
+ from: getCurrentAccountId(),
71
+ content: message.buildContent()
72
+ }])[0])
73
+ }
74
+ return imCoreChatroom.sendMessage({
75
+ time: null,
76
+ seq: null,
77
+ qos: 0,
78
+ resendFlag: 0,
79
+ convtype: 3,
80
+ buildContent: message.buildContent.bind(message)
81
+ }).then((res) => {
82
+ const data = transferLongToString(res)
83
+ return {
84
+ id: data.msgId,
85
+ seq: data.msgSeq,
86
+ time: data.msgTime,
87
+ _direction: 'up',
88
+ _localInfo: {
89
+ id: data.msgId,
90
+ index: 0
91
+ }
92
+ }
93
+ })
94
+ }
95
+
96
+ const _sendMessage = async (contentType, contentBody, online, headers) => {
97
+ const messageType = MessageTypeMap[contentType]
98
+ const message = new IMCoreChatroom.MessageConstructor[messageType]()
99
+ if (headers) {
100
+ message.setHeaders(headers)
101
+ }
102
+
103
+ if (contentType === ContentType.Text && contentBody.length > 500) {
104
+ let result
105
+ for (let i = 0; i < contentBody.length; i += 500) {
106
+ const body = contentBody.substring(i, i + 500)
107
+ message.setBody(body)
108
+ result = await __sendMessage(message, online)
109
+ }
110
+ return result
111
+ }
112
+
113
+ let body = contentBody
114
+ if (messageType === ContentType.Image) {
115
+ body = body.replace('fullimage', 'fullImage')
116
+ }
117
+ message.setBody(body)
118
+ return __sendMessage(message, online)
119
+ }
120
+
121
+ export const sendMessage = async (contentType, contentBody, online) => {
122
+ if (appConfig.get('messageEditor.getMessageHeaders')) {
123
+ return bridge.register('getMessageHeaders').then((headers) => _sendMessage(contentType, contentBody, online, headers))
124
+ } else {
125
+ const userId = await getCurrentAccountId()
126
+ const userInfo = await getUserInfoWithCache(userId)
127
+ return _sendMessage(contentType, contentBody, online,
128
+ {
129
+ 'Content-Sender': {
130
+ user_id: userId,
131
+ nick_name: userInfo.real_name
132
+ }
133
+ })
134
+ }
135
+ }
136
+
137
+ export const getHistoryMessages = (id, limit) => imCoreChatroom.getHistoryMessages(transferStringToLong(id), limit)
138
+ .then((messages) => {
139
+ const items = reverse(formatMessages(messages.map((message) => transferLongToString(message))))
140
+
141
+ // items.forEach((message) => {
142
+ // const messageType = get(message, '_parsedContent.type')
143
+ // if ([C.MESSAGE_TYPE.CTL, C.MESSAGE_TYPE.NTF, C.MESSAGE_TYPE.TEL].some((type) => messageType === type)) {
144
+ // thirdParty.onPostMessage(thirdParty.EVENT.CMD, message)
145
+ // }
146
+ // })
147
+
148
+ const hasMore = items.length > 0 && items[0].id !== C.MIM_CONV_MSG_ID
149
+ if (appConfig.get('chatroomChatMessageList.filterMessages')) {
150
+ return bridge.register('filterMessages', {
151
+ type: 'history',
152
+ messages: items,
153
+ hasMore
154
+ })
155
+ }
156
+ return {
157
+ messages: items,
158
+ hasMore
159
+ }
160
+ })
161
+
162
+ export const subscribeOnlineStatus = () => imCoreChatroom.subscribeOnlineStatus()
163
+
164
+ export const recallMessage = (message) => {
165
+ if (appConfig.get('chatroomChatMessageList.getRecallMessageExtInfo')) {
166
+ return bridge.register('getRecallMessageExtInfo', message).then(
167
+ (extInfo) => imCoreChatroom.recallMessage({
168
+ time: transferStringToLong(message.time),
169
+ id: transferStringToLong(message.id)
170
+ }, extInfo)
171
+ )
172
+ } else {
173
+ return imCoreChatroom.recallMessage({
174
+ time: transferStringToLong(message.time),
175
+ id: transferStringToLong(message.id)
176
+ })
177
+ }
178
+ }
@@ -1,7 +1,7 @@
1
- import imCoreApiRequestConfig from '../../../config/request/config/imCoreApi'
2
-
3
- // 添加请求拦截器
4
- export default [
5
- imCoreApiRequestConfig.interceptors.request,
6
- (error) => Promise.reject(error)
7
- ]
1
+ import imCoreApiRequestConfig from '../../../config/request/config/imCoreApi'
2
+
3
+ // 添加请求拦截器
4
+ export default [
5
+ imCoreApiRequestConfig.interceptors.request,
6
+ (error) => Promise.reject(error)
7
+ ]
@@ -1,5 +1,5 @@
1
- // 添加响应拦截器
2
- export default [
3
- (response) => response,
4
- (error) => Promise.reject(error)
5
- ]
1
+ // 添加响应拦截器
2
+ export default [
3
+ (response) => response,
4
+ (error) => Promise.reject(error)
5
+ ]