最近在做直播的問題,有這么一個需求,在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端可以正常接收消息,但是字微信里面還不可以,具體相關問題,還在進一步的排查中,有知道的同學也可以相互交流。