最近公司要做一个社交 app,对于工夫就是金钱的当今社会,招聘大量人才去搭建通信零碎必定是不划算的,破费人力物力财力做进去的 app,可能还没人用。那就瞎了。所以毋庸置疑,一拍即合,用第三方的。就开始了对于目前市面上支流的第三方 IM SDK 进行调研。其中有腾讯云,网易云信,融云,环信等。列出了一堆比照条件,最初领导拍板用哪个。末端程序员是没有选择权的。好好搬砖就能够了~ 要明确本人的身份,嘎嘎
过程不说了,最初抉择了用融云,废话不多说,间接勒~ 这里只介绍一下如何疾速集成,让俩人聊起来,这也算是一个里程碑啊。对于程序员来说,聊不起来可就毁了,领导都特么奶凶奶凶的~~~
1. 先到融云官网 (https://www.rongcloud.cn/) 进行注册(注册按钮本人找吧),这个能够让你们产品经理或者啥领导去做,能够用公司的邮箱,别用本人的吧,前期本人换了地儿,对公司也是损失不是。注册后增加利用,拿到 appkey
2.xcode 创立一个新工程,或者找本人公司的我的项目,这里我举荐应用 pod 形式治理第三方,方便快捷,省时省力。因为手动形式太落后了,且配置繁琐,稍有脱漏就会报错,有些报错排查起来费时费力费神费电,所以还是老老实实的用 pod 吧。不听老人言,吃亏在眼前,听哥的没错,融云文档写了如何用 pod,几行命令的事。弄完后,也就是把 SDK 集成好了,跑一下工程,如果不报错,恭喜你兄嘚,马上能够聊天了,看下一步
3. 须要在 appDelegate 中导入头文件。#import <RongIMKit/RongIMKit.h>。对了,咱们用的是带界面的 SDK,疾速集成不麻烦。
4. 初始化 SDK
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 下边引号内须要替换为你的 appkey,别特么一成不变的抄哈, 嘎嘎
[[RCIM sharedRCIM] initWithAppKey:@"融云开发者后盾的 AppKey"];
return YES;
}
5. 这一步该连贯融云了兄嘚
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[[RCIM sharedRCIM] initWithAppKey:@"获取到的 AppKey"];
[[RCIM sharedRCIM] connectWithToken:@"开发者的 server 通过申请 server api 获取到的 token 值"
dbOpened:^(RCDBErrorCode code) {}
success:^(NSString *userId) {}
error:^(RCConnectErrorCode status) {}];
return YES;
}
敲黑板 1:在这我得多说你几句,必须要看胜利回调和失败回调的调用,进了 success 就是胜利了,进了 error 就是谬误了。谬误了你要看 status 状态码啊,依据错误码来找问题。我在调试过程中就遇到了 RC_CONN_TOKEN_INCORRECT 错误码,顾名思义:token 不正确。这个就要找本人的服务端人员看是哪里问题导致的 token 不正确了。
敲黑板 1:还有 @” 开发者的 server 通过申请 server api 获取到的 token 值 ”,这个 token,在刚开始测试的时候,你们的服务端可能还没集成,所以能够先到融云开发者后盾“服务治理”–“API 调用”–“用户服务”–“获取 Token”那里,轻易输出一个 userId,name,portraitUri,就可失去 token 了。用这个 token 去连贯即可,省时省力。
6. 至此,祝贺你啊,曾经连贯融云胜利了。下一步就是该推敲如何找人聊天了。
7. 聊天,须要俩人,对吧,当初连贯的用户为之一,另一个须要再去融云开发者后盾申请一个 token,记住他的 userId,发消息是须要 userId 的。而后创立个按钮,点击事件写如下代码即可,跳转之后,就能聊天了。而后再跑一个模拟器或者真机,用后申请的 token 登陆,俩人就能相互对话了。
RCConversationViewController *chatViewController = [[RCConversationViewController alloc] initWithConversationType:ConversationType_PRIVATE targetId:"后申请 token 时填写的 userId"];
[self.navigationController pushViewController:chatViewController animated:YES];