最近在做直播的问题,有这么一个需求,在H5页面观看直播的时候,能收到app端用户发的信息,这个需要我们接入环信的sdk了,因为我们这边app是用的环信sdk,需求来了,挡是挡不掉的,只能硬着头皮上了。在查看了很多文档之后,实话实说,没有看懂,相关api地址是http://docs.easemob.com/im/400webimintegration/10webimintro,有兴趣的同学可以看看。
首先我们要做好环信的相关配置:在官网下载官方demo,里面有压缩好的js官方有好几种方式得到相应的js,但是有一个webim.config.js,l里面的内容需要自己设置的,有个appkey 这个是在官网注册时生成的,还有一个isAutoLogin 这个字段也是很重要的,关系着是否要设置自动上线
把在官网下载好的js,引入相应的页面,
var conn =newWebIM.connection({
isMultiLoginSessions: WebIM.config.isMultiLoginSessions,
https:typeofWebIM.config.https==='boolean'? WebIM.config.https:location.protocol==='https:',
url: WebIM.config.xmppURL,
isAutoLogin:false,
heartBeatWait: WebIM.config.heartBeatWait,
autoReconnectNumMax: WebIM.config.autoReconnectNumMax,
autoReconnectInterval: WebIM.config.autoReconnectInterval
});
接入环信必须先把这些配置弄好,在链接环信之后要登录环信的系统,我们这边是后台自动给我注册好的,所以就不说注册哪一步了,这个登录可以实现多个用户观看同一直播时,同时在线的,
var options = {
apiUrl: WebIM.config.apiURL,
user: user,//从接口中获取的用户名
pwd: pwd,//从接口中获取的密码
appKey: WebIM.config.appkey
};
conn.open(options);
登录成功之后,要加入聊天室
varhandlePresence=function( e ) {
// console.log(e.type);根据type来判断是否加入聊天室成功
};
// listern,添加回调函数
conn.listen({
onPresence:function( message ) {
handlePresence(message);
},
onOpened:function(message) {//连接成功回调,连接成功后才可以发送消息
//如果isAutoLogin设置为false,那么必须手动设置上线,否则无法收消息
// 手动上线指的是调用conn.setPresence();
//conn.setPresence();
conn.joinChatRoom({
roomId: self.shareInfo.chatroomId// 聊天室id
});
},
onTextMessage:function(message) {
// 在此接收和处理消息,根据message.type区分消息来源,私聊或群组或聊天室
//console.log(message);
self.rollMessages(message);
},
});
此方法已经可以在pc端可以正常接收消息,但是字微信里面还不可以,具体相关问题,还在进一步的排查中,有知道的同学也可以相互交流。