美文网首页
融云即时通讯iOS客户端

融云即时通讯iOS客户端

作者: 阿猿 | 来源:发表于2016-09-13 23:04 被阅读552次

写在前面: 这篇博客简单的讲一下,融云即时通讯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 万元/月。
注:总结部分内容数据来自知乎。

相关文章

网友评论

      本文标题:融云即时通讯iOS客户端

      本文链接:https://www.haomeiwen.com/subject/ghbeettx.html