im.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. graceUI-IM - IM 即时通讯工具
  3. link : graceui.hcoder.net
  4. author : 5213606@qq.com 深海
  5. 版权声明 :
  6. GraceUI 的版权约束是不能转售或者将 GraceUI 直接发布到公开渠道!
  7. 侵权必究,请遵守版权约定!
  8. */
  9. module.exports = {
  10. // 接收消息
  11. receiveMsg : function(res, _self){
  12. console.log(res);
  13. var msg = JSON.parse(res.data);
  14. // 注册消息
  15. if(msg.type == "regback"){
  16. try{
  17. uni.setStorageSync('imToken', msg.token);
  18. }catch(e){}
  19. }
  20. // 对话消息
  21. else if(msg.type == "msg"){
  22. _self.msgs.push(msg);
  23. // 滚动条处理
  24. setTimeout(function (){_self.graceIMScTOP = 99000 + Math.random();}, 1000);
  25. }
  26. },
  27. // 注册用户
  28. register : function(user, group, grouptype){
  29. try {
  30. var imToken = uni.getStorageSync('imToken');
  31. if(imToken == ''){
  32. setTimeout(function(){_self.register(user, group, grouptype);}, 1000);
  33. return ;
  34. }
  35. } catch (e){}
  36. // 先发消息进行用户注册
  37. var _self = this;
  38. var msg = user;
  39. console.log(msg);
  40. msg.type = 'reg'; // 消息类型 [reg : 注册用户及绑定分组、 msg : 普通消息]
  41. msg.group = group; // 分组
  42. msg.grouptype = grouptype; // 分组类型 [group : 群聊、 private : 私聊]
  43. msg.token = imToken;
  44. uni.sendSocketMessage({
  45. data : JSON.stringify(msg),
  46. // 如果注册失败等待im服务连接成功继续注册
  47. fail:function(e){
  48. setTimeout(function(){_self.register(user, group, grouptype);}, 1000);
  49. }
  50. });
  51. },
  52. // 发送消息
  53. sendMsg : function(user, msgType, content){
  54. try {var imToken = uni.getStorageSync('imToken');} catch (e) {}
  55. var msg = user;
  56. msg.type = 'msg';
  57. msg.contentType = msgType;
  58. msg.content = content;
  59. msg.token = imToken;
  60. uni.sendSocketMessage({data : JSON.stringify(msg)});
  61. }
  62. }