标签:tar 最新版 cep reject lan 提示 join 连接服务器 source
随着直播越来越火,所在公司也打算制作自己的直播,所以去了解了这方面,使用后发现还是有些问题需要记录的。
经过分析,制作直播应该是分为两块来做,即直播与实时评论。这里先去制作实时评论,等直播ok后,也会将相应心得写上来。
其实融云的api还是比较清晰的,只不过web demo只有ng的,个人对ng不是很熟悉,所以只能自己慢慢摸索。
1. 注册帐号,根据提示创建应用,获取appkey
2. 引入sdk(请去官网选择最新版本)
<script src="http(s)://cdn.ronghub.com/RongIMLib-2.2.5.min.js"></script>
3. 初始化sdk
RongIMClient.init("xxx"); //"xxx"代表你的appkey
4. 设置监听器
// 设置连接监听状态 ( status 标识当前连接状态)
// 连接状态监听器
RongIMClient.setConnectionStatusListener({
onChanged: function (status) {
switch (status) {
//链接成功
case RongIMLib.ConnectionStatus.CONNECTED:
console.log(‘链接成功‘);
break;
//正在链接
case RongIMLib.ConnectionStatus.CONNECTING:
console.log(‘正在链接‘);
break;
//重新链接
case RongIMLib.ConnectionStatus.DISCONNECTED:
console.log(‘断开连接‘);
break;
//其他设备登录
case RongIMLib.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT:
console.log(‘其他设备登录‘);
break;
//网络不可用
case RongIMLib.ConnectionStatus.NETWORK_UNAVAILABLE:
console.log(‘网络不可用‘);
break;
}
}});
// 消息监听器
RongIMClient.setOnReceiveMessageListener({
// 接收到的消息
onReceived: function (message) {
// 判断消息类型
switch(message.messageType){
case RongIMClient.MessageType.TextMessage:
// 发送的消息内容将会被打印
console.log(message.content.content);
break;
case RongIMClient.MessageType.VoiceMessage:
// 对声音进行预加载
// message.content.content 格式为 AMR 格式的 base64 码
RongIMLib.RongIMVoice.preLoaded(message.content.content);
break;
case RongIMClient.MessageType.ImageMessage:
// do something...
break;
case RongIMClient.MessageType.DiscussionNotificationMessage:
// do something...
break;
case RongIMClient.MessageType.LocationMessage:
// do something...
break;
case RongIMClient.MessageType.RichContentMessage:
// do something...
break;
case RongIMClient.MessageType.DiscussionNotificationMessage:
// do something...
break;
case RongIMClient.MessageType.InformationNotificationMessage:
// do something...
break;
case RongIMClient.MessageType.ContactNotificationMessage:
// do something...
break;
case RongIMClient.MessageType.ProfileNotificationMessage:
// do something...
break;
case RongIMClient.MessageType.CommandNotificationMessage:
// do something...
break;
case RongIMClient.MessageType.CommandMessage:
// do something...
break;
case RongIMClient.MessageType.UnknownMessage:
// do something...
break;
default:
// 自定义消息
// do something...
}
}
});
顾名思义,状态连接监听器是用来检测当前用户的状态的,消息监听器也就是我们接受消息的。
5. 获取token(在我的应用中自行获取即可)
6. 连接服务器
var token = "xxx"; //"xxx"代表你自己的token
// 连接融云服务器。
RongIMClient.connect(token, {
onSuccess: function(userId) {
console.log("Login successfully." + userId);
},
onTokenIncorrect: function() {
console.log(‘token无效‘);
},
onError:function(errorCode){
var info = ‘‘;
switch (errorCode) {
case RongIMLib.ErrorCode.TIMEOUT:
info = ‘超时‘;
break;
case RongIMLib.ErrorCode.UNKNOWN_ERROR:
info = ‘未知错误‘;
break;
case RongIMLib.ErrorCode.UNACCEPTABLE_PaROTOCOL_VERSION:
info = ‘不可接受的协议版本‘;
break;
case RongIMLib.ErrorCode.IDENTIFIER_REJECTED:
info = ‘appkey不正确‘;
break;
case RongIMLib.ErrorCode.SERVER_UNAVAILABLE:
info = ‘服务器不可用‘;
break;
}
console.log(errorCode);
}
});
7. 发送消息
// 定义消息类型,文字消息使用 RongIMLib.TextMessage
var msg = new RongIMLib.TextMessage({content:"hello",extra:"附加信息"});
//或者使用RongIMLib.TextMessage.obtain 方法.具体使用请参见文档
//var msg = RongIMLib.TextMessage.obtain("hello");
var conversationtype = RongIMLib.ConversationType.CHATROOM; // 聊天室
var targetId = "xxx"; // 目标 Id
RongIMClient.getInstance().sendMessage(conversationtype, targetId, msg, {
// 发送消息成功
onSuccess: function (message) {
//message 为发送的消息对象并且包含服务器返回的消息唯一Id和发送消息时间戳
console.log("Send successfully");
},
onError: function (errorCode,message) {
var info = ‘‘;
switch (errorCode) {
case RongIMLib.ErrorCode.TIMEOUT:
info = ‘超时‘;
break;
case RongIMLib.ErrorCode.UNKNOWN_ERROR:
info = ‘未知错误‘;
break;
case RongIMLib.ErrorCode.REJECTED_BY_BLACKLIST:
info = ‘在黑名单中,无法向对方发送消息‘;
break;
case RongIMLib.ErrorCode.NOT_IN_DISCUSSION:
info = ‘不在讨论组中‘;
break;
case RongIMLib.ErrorCode.NOT_IN_GROUP:
info = ‘不在群组中‘;
break;
case RongIMLib.ErrorCode.NOT_IN_CHATROOM:
info = ‘不在聊天室中‘;
break;
default :
info = x;
break;
}
console.log(‘发送失败:‘ + info);
}
}
);
因为是直播所以选择了聊天室,大家根据自己的需求更改即可
RongIMLib.ConversationType.CHATROOM; ==> 选择聊天室
targetId = "xxx"; ==> 如果是聊天室就填写创建聊天室的id,私聊就是目标用户的id,以此类推
8. 进入聊天室
var chatRoomId = "xxx"; // 聊天室 Id。
var count = 1;// 拉取最近聊天最多 50 条
RongIMClient.getInstance().joinChatRoom(chatRoomId, count, {
onSuccess: function() {
// 加入聊天室成功。
console.log(‘加入聊天室成功。‘);
},
onError: function(error) {
// 加入聊天室失败
}
});
当没有聊天室的时候,此方法会创建聊天室
9.其他
基本上的功能就是这样了,像其他的功能(同步回话列表,表情等)大家去官网查看,这里就不讲解了...
如若您发现有任何问题,欢迎交流指正...
http://www.cnblogs.com/bbbiu/p/6871994.html
标签:tar 最新版 cep reject lan 提示 join 连接服务器 source
原文地址:http://www.cnblogs.com/softidea/p/6872737.html