WebIM.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. import WebIM from '../newSDK/Easemob-chat.js'
  2. import config from './WebIMConfig.js'
  3. import vueBus from '@/utils/vueBus'
  4. //初始化
  5. let conn = {};
  6. WebIM.config = config;
  7. conn = WebIM.conn = new WebIM.connection({
  8. appKey: config.appkey,
  9. https: true, //是否使用HTTPS
  10. url: "wss://im-api-wechat.easemob.com/websocket", // socket server (3.0 SDK)
  11. apiUrl: "https://a1.easemob.com", // rest server
  12. heartBeatWait: 30000, //心跳间隔
  13. autoReconnectNumMax: 5, //自动重连次数
  14. useOwnUploadFun: true, // 是否使用自己的上传方式(如将图片文件等上传到自己的服务器,构建消息时只传url)
  15. // WebIM.config 为之前集成里介绍的WebIMConfig.js
  16. })
  17. let login = false
  18. //回调
  19. conn.listen({
  20. onOpened: function(message) {
  21. console.log('环信登录成功');
  22. }, //连接成功回调
  23. onClosed: function(message) {
  24. console.log('环信断开链接');
  25. // uni.showModal({
  26. // title: '提示',
  27. // content: '您已在其他地方登录,是否重新登录',
  28. // success: function(res) {
  29. // if (res.confirm) {
  30. // uni.reLaunch({
  31. // url: "/pages/login/login"
  32. // })
  33. // } else if (res.cancel) {
  34. // console.log('用户点击取消');
  35. // }
  36. // }
  37. // });
  38. }, //连接关闭回调
  39. onTextMessage: function(message) {
  40. uni.showTabBarRedDot({
  41. index: 3,
  42. success(res) {
  43. console.log(res);
  44. }
  45. })
  46. vueBus.$emit('message')
  47. }, //收到文本消息
  48. onEmojiMessage: function(message) {
  49. uni.showTabBarRedDot({
  50. index: 3,
  51. success(res) {
  52. console.log(res);
  53. }
  54. })
  55. vueBus.$emit('message')
  56. }, //收到表情消息
  57. onPictureMessage: function(message) {
  58. uni.showTabBarRedDot({
  59. index: 3,
  60. success(res) {
  61. console.log(res);
  62. }
  63. })
  64. vueBus.$emit('message')
  65. }, //收到图片消息
  66. onCmdMessage: function(message) {
  67. uni.showTabBarRedDot({
  68. index: 3,
  69. success(res) {
  70. console.log(res);
  71. }
  72. })
  73. vueBus.$emit('message')
  74. }, //收到命令消息
  75. onAudioMessage: function(message) {
  76. uni.showTabBarRedDot({
  77. index: 3,
  78. success(res) {
  79. console.log(res);
  80. }
  81. })
  82. vueBus.$emit('message')
  83. }, //收到音频消息
  84. onLocationMessage: function(message) {}, //收到位置消息
  85. onFileMessage: function(message) {
  86. }, //收到文件消息
  87. onVideoMessage: function(message) {
  88. var node = document.getElementById('privateVideo');
  89. var option = {
  90. url: message.url,
  91. headers: {
  92. 'Accept': 'audio/mp4'
  93. },
  94. onFileDownloadComplete: function(response) {
  95. var objectURL = WebIM.utils.parseDownloadResponse.call(conn, response);
  96. node.src = objectURL;
  97. },
  98. onFileDownloadError: function() {
  99. console.log('File down load error.')
  100. }
  101. };
  102. WebIM.utils.download.call(conn, option);
  103. }, //收到视频消息
  104. onPresence: function(message) {}, //处理“广播”或“发布-订阅”消息,如联系人订阅请求、处理群组、聊天室被踢解散等消息
  105. onRoster: function(message) {}, //处理好友申请
  106. onInviteMessage: function(message) {}, //处理群组邀请
  107. onOnline: function() {}, //本机网络连接成功
  108. onOffline: function() {}, //本机网络掉线
  109. onError: function(message) {}, //失败回调
  110. onBlacklistUpdate: function(list) { //黑名单变动
  111. // 查询黑名单,将好友拉黑,将好友从黑名单移除都会回调这个函数,list则是黑名单现有的所有好友信息
  112. console.log(list);
  113. },
  114. onRecallMessage: function(message) {}, //收到撤回消息回调
  115. onReceivedMessage: function(message) {}, //收到消息送达服务器回执
  116. onDeliveredMessage: function(message) {
  117. }, //收到消息送达客户端回执
  118. onReadMessage: function(message) {}, //收到消息已读回执
  119. onCreateGroup: function(message) {}, //创建群组成功回执(需调用createGroupNew)
  120. onMutedMessage: function(message) {}, //如果用户在A群组被禁言,在A群发消息会走这个回调并且消息不会传递给群其它成员
  121. onChannelMessage: function(message) {} //收到整个会话已读的回执,在对方发送channel ack时会在这个回调里收到消息
  122. });
  123. export {
  124. conn
  125. };