美文网首页
微信小程序 搭配网易云信IM即时通讯

微信小程序 搭配网易云信IM即时通讯

作者: _大叔_ | 来源:发表于2020-03-11 18:04 被阅读0次

一、基础工作

申请网易云IM账号,申请小程序开发者账号,阅读官方API及开发文档。

二、后端工作

我们知道网易云的通讯接入如下图

网易文档接入流程图

后端首先自己去获取accid和token 获取accid和token地址

当我们有了accid 以及token 返回给前端。

这里建议用户登录得token和网易云得token是一致的,网易云允许我们自己设置token,没设置的话会自己随机产生并返回给我们。

三、前端工作

前端需要导入SDK https://yunxin.163.com/im-sdk-demo , copy到小程序的项目内。
小程序的IM接入与WEB端的接入相似,先获取IM的实例,获取到后才能发送消息。

  chatInit:function(){
    const user = request.getUser();
    this.globalData.nim = chat.NIM.getInstance({
      debug: false,
      appKey: "网易云IM的APPKEY",
      account: user.accId,//后端给的在网易云获取的accid
      token: user.token, //后端给的在网易云获取的token
      db: false, //若不要开启数据库请设置false。SDK默认为true。
      onconnect: function () {
        console.log('连接成功');
      },
      onwillreconnect: function (obj) {
        // 此时说明 SDK 已经断开连接, 请开发者在界面上提示用户连接已断开, 而且正在重新建立连接
        console.log('即将重连');
        console.log(obj.retryCount);
        console.log(obj.duration);
      },
      ondisconnect: function (error) {
        // 此时说明 SDK 处于断开状态, 开发者此时应该根据错误码提示相应的错误信息, 并且跳转到登录页面
        console.log('丢失连接');
        console.log(error);
        if (error) {
          switch (error.code) {
            // 账号或者密码错误, 请跳转到登录页面并提示错误
            case 302:
              break;
            // 重复登录, 已经在其它端登录了, 请跳转到登录页面并提示错误
            case 417:
              break;
            // 被踢, 请提示错误后跳转到登录页面
            case 'kicked':
              break;
            default:
              break;
          }
        }
      },
      onerror: function (error) {
        console.log(error);
      }
    });
  },

但是在这里,我建议大家先去做微信登录。我的代码贴上

 // 微信登录认证
  login:function(){
    // 先判断是否登录,先检查session
    wx.checkSession({
      success() {
        console.log("session未过期");
      },
      fail() {
        // session_key 已经失效,需要重新执行登录流程
        wx.login({
          success(res) {
            if (res.code) {
              //发起网络请求
              request.post("/appletsUser/login", res.code,(res) => {
                let data = res.data;
                wx.setStorageSync("user", data.data);
              });
            } else {
              console.log('登录失败!' + res.errMsg)
            }
          }
        })
      }
    })
  }

只要看到 连接成功 就代表可以发送消息接收消息等。
如果报错,看下导入得sdk是否正确,微信小程序有专门得SDK。

相关文章

网友评论

      本文标题:微信小程序 搭配网易云信IM即时通讯

      本文链接:https://www.haomeiwen.com/subject/wergdhtx.html