融云即时通讯iOS客户端

写在前面: 这篇博客简单的讲一下,融云即时通讯iOS客户端的快速嵌入步骤,不涉及与服务器的交互部分,仅是API调试

注:这篇博客上使用到的数据均是我特意在融云上申请的应用的数据,方便大家调试,特意全部放在头部,以供参考。

#define kRongYKey @"pgyu6atqyp2yu"
userID 20012016090700000244 
  • SDK引入

使用的是cocodpods方式引入,融云将聊天UI界面也封装进了该SDK中,大大加快了开发的步骤。

pods.png
  • 注册应用

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 万元/月。
注:总结部分内容数据来自知乎。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 相信大家在项目中会用到即时通讯功能,自己去写的话会需要前后台合作,会大大加大开发的周期,所以考虑使用第三方的即时通...
    ProgrammerChan阅读 8,538评论 16 38
  • //联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪 /**注意:先看效果图-->1.登录融云-->2.生...
    石虎132阅读 2,384评论 5 20
  • 1.1:融云的分类(简介) 1.1.1:融云 IM 界面组件 - RongCloud IMKit IMKit 是融...
    不一样的色彩阅读 2,651评论 0 1
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 5,277评论 1 23
  • 第一篇简书,说给自己听。 网名简宝,取化繁为简,爱如珍宝之意,定居北京,04年北邮通信工程毕业,从事将近十年的IT...
    简单是宝阅读 168评论 0 0