写在前面: 这篇博客简单的讲一下,融云即时通讯iOS客户端的快速嵌入步骤,不涉及与服务器的交互部分,仅是API调试。
注:这篇博客上使用到的数据均是我特意在融云上申请的应用的数据,方便大家调试,特意全部放在头部,以供参考。
#define kRongYKey @"pgyu6atqyp2yu"
userID 20012016090700000244
-
SDK引入
使用的是cocodpods方式引入,融云将聊天UI界面也封装进了该SDK中,大大加快了开发的步骤。
-
注册应用
1.在APPDelegate.m方法中引入SDK以及注册应用
#import <RongIMKit/RongIMKit.h>
#define kRongYKey @"pgyu6atqyp2yu"
[[RCIM sharedRCIM] initWithAppKey:kRongYKey];
-
基础方法调用
1.连接聊天服务器
[[RCIM sharedRCIM] connectWithToken:tokenStr success:^(NSString *userId) {
NSLog(@"登陆成功。当前登录的用户ID:%@", userId);
} error:^(RCConnectErrorCode status) {
[self hideHUD];
NSLog(@"登陆的错误码为:%ld", (long)status);
} tokenIncorrect:^{
[self hideHUD];
//token过期或者不正确。
//如果设置了token有效期并且token过期,请重新请求您的服务器获取新的token
//如果没有设置token有效期却提示token错误,请检查您客户端和服务器的appkey是否匹配,还有检查您获取token的流程。
NSLog(@"token错误");
}];
2.会话列表页面
ChatListViewController *chat = [[ChatListViewController alloc]init];
[self.navigationController pushViewController:chat animated:YES];
3.聊天页面
/**
*重写RCConversationListViewController的onSelectedTableRow事件
*
* @param conversationModelType 数据模型类型
* @param model 数据模型
* @param indexPath 索引
*/
-(void)onSelectedTableRow:(RCConversationModelType)conversationModelType conversationModel:(RCConversationModel *)model atIndexPath:(NSIndexPath *)indexPath
{
RCConversationViewController *conversationVC = [[RCConversationViewController alloc]init];
conversationVC.conversationType =model.conversationType;
conversationVC.targetId = model.targetId;
// conversationVC.userName =model.conversationTitle;
conversationVC.title = model.conversationTitle;
[self.navigationController pushViewController:conversationVC animated:YES];
}
4.开启一个单聊会话
RCConversationViewController *conversationVC = [[RCConversationViewController alloc]init];
conversationVC.conversationType =ConversationType_PRIVATE;
conversationVC.targetId = userInfo.userID; //这里模拟自己给自己发消息,您可以替换成其他登录的用户的UserId
conversationVC.title = userInfo.userName;
[self.navigationController pushViewController:conversationVC animated:YES];
-
总结
融云和 AVOS(LeanCloud)的区别
1.从技术方面:(主要是通过 iOS SDK 和 相关 demo),个人感觉两者根本不是一个技术层次的。
LeanCloud 的代码质量很高,符合 iOS 代码规范,API 命名是专业的英文风格。相关 Demo 易懂不复杂。
融云的 iOS SDK 开发人员感觉水平可能还不足以应付专业的 SDK 封装编写,封装的略显臃肿,代码水平相比 LeanCloud 要差不少,并且不是很符合代码规范。技术文档水平也待提高。
2.从开发成本方面: 融云有压倒性优势,基本上你连界面都不用写,几句代码集成进去你的应用就具备了聊天功能;LeanCloud 提供的是一个更加抽象的实时通讯服务,可以非常灵活的实现各种功能场景。
3.从运营成本方面:
融云无论用户量多大,全部是免费的,一些增值服务才付费。
以 40 万日活计算,融云成本为零;LeanCloud 是 1.2 万元/月,环信是 2 万元/月。
注:总结部分内容数据来自知乎。