WebIM.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import WebIM from '../newSDK/Easemob-chat-4.1.4.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. vueBus.$emit('message','text')
  41. }, //收到文本消息
  42. onEmojiMessage: function ( message ) {
  43. vueBus.$emit('message','emoji')
  44. }, //收到表情消息
  45. onPictureMessage: function ( message ) {
  46. vueBus.$emit('message','img')
  47. }, //收到图片消息
  48. onCmdMessage: function ( message ) {}, //收到命令消息
  49. onAudioMessage: function ( message ) {
  50. vueBus.$emit('message','audio')
  51. }, //收到音频消息
  52. onLocationMessage: function ( message ) {},//收到位置消息
  53. onFileMessage: function ( message ) {}, //收到文件消息
  54. onVideoMessage: function (message) {
  55. var node = document.getElementById('privateVideo');
  56. var option = {
  57. url: message.url,
  58. headers: {
  59. 'Accept': 'audio/mp4'
  60. },
  61. onFileDownloadComplete: function (response) {
  62. var objectURL = WebIM.utils.parseDownloadResponse.call(conn, response);
  63. node.src = objectURL;
  64. },
  65. onFileDownloadError: function () {
  66. console.log('File down load error.')
  67. }
  68. };
  69. WebIM.utils.download.call(conn, option);
  70. }, //收到视频消息
  71. onPresence: function ( message ) {}, //处理“广播”或“发布-订阅”消息,如联系人订阅请求、处理群组、聊天室被踢解散等消息
  72. onRoster: function ( message ) {}, //处理好友申请
  73. onInviteMessage: function ( message ) {}, //处理群组邀请
  74. onOnline: function () {}, //本机网络连接成功
  75. onOffline: function () {}, //本机网络掉线
  76. onError: function ( message ) {}, //失败回调
  77. onBlacklistUpdate: function (list) { //黑名单变动
  78. // 查询黑名单,将好友拉黑,将好友从黑名单移除都会回调这个函数,list则是黑名单现有的所有好友信息
  79. console.log(list);
  80. },
  81. onRecallMessage: function(message){}, //收到撤回消息回调
  82. onReceivedMessage: function(message){}, //收到消息送达服务器回执
  83. onDeliveredMessage: function(message){
  84. }, //收到消息送达客户端回执
  85. onReadMessage: function(message){}, //收到消息已读回执
  86. onCreateGroup: function(message){}, //创建群组成功回执(需调用createGroupNew)
  87. onMutedMessage: function(message){}, //如果用户在A群组被禁言,在A群发消息会走这个回调并且消息不会传递给群其它成员
  88. onChannelMessage: function(message){} //收到整个会话已读的回执,在对方发送channel ack时会在这个回调里收到消息
  89. });
  90. export {conn};