http://www.ox-holdings.com

屏幕快照 2017-04-24 上午9.50.19.png,环信客户互动云聊天界面.png

摘要即时通讯云环信的iOS客户端SDK正式支持HTTPS,此举将更好地配合环信开发者实现2017年1月1日起苹果App Store强制APP支持ATS要求。前言因苹果公司从2017.1.1日起强制要求所有上线APPStore的APP都需要支持ATS标准。为了适应这一政策不影响用户APP的正常发布,环信分别于2016.12.6日和8日正式发布IOS V2.2.9和V3.2.2版本,请环信的IM开发者尽快更新SDK的版本以免影响APP的正常发布计划。iOS v3.2.2 SDK 已发布更新内容:SDK满足apple ATS的要求删除好友逻辑的修改(增加是否删除会话选项)修复呼叫时对方不在线,不能正确显示通话结束原因的问题iOS v2.2.9 SDK 已发布更新内容:SDK满足apple ATS的要求删除好友逻辑的修改(增加是否删除会话选项)修复呼叫时对方不在线,不能正确显示通话结束原因的问题版本下载和持术支持1) 新版SDK下载:SDK下载。2) 技术支持:更新过程中遇到问题欢迎联系环信技术支持。

摘要即时通讯云网易云信于2017年1月20日发布3.4.0版,本次更新为主要版本的次要更新,详情见文章内容。发布的版本本次发布的版本号为 3.4.0版,更新时间为:2017年01月20日。iOS 更新内容新增互动直播新增服务器录制参数bypassStreamingServerRecordingAndroid 更新内容新增1. 网络通话新增互动直播录制: AVChatOptionalConfig#enableLiveServerRecord 。变更1. 文件断点续传优化。2. 修复文件下载过程中调用 cancel 接口后无状态回调的问题。3. 登录优化,解决特殊场景下出现的服务异常的情况。4. SDKOptions 添加是否提高 SDK 进程优先级可选项,用户可根据例外机型或例外系统版本停用此进程保护方式。5. SDK 内部 http 地址替换为 https 地址。6. 网络通话语音设备变更通知: AVChatStateObserver#onAudioDeviceChanged 。Windows(PC) SDK 更新内容新增添加音视频模块网络探测功能,网络探测会返回探测结果,针对结果可以参考开发手册计算出当前的网络情况点对点白板通话中,白板数据和音频数据的服务器录制开关分离C接口支持隐式调用进入聊天室增加账号禁用通知(422)修复解决伴音采集导致异常崩溃的问题修复x64下,打开扬声器导致的崩溃问题优化弱网下的SDK 的提示,增加本地网络错误的错误号10010修复发送文件过程中,文件大小有变化导致的接收端无法正常接收文件的问题Web SDK 更新内容变更优化 SDK 内部同步操作, 加快同步速度获取本地消息去掉数量限制, 由开发者自己控制下载地址请从以下官网地址下载:

即时通讯

图片 1

屏幕快照 2017-04-24 上午10.43.21.png

转载自[http://blog.csdn.net/maxdong24/article/details/53610127]

一、环信客户互动云是干什么用的?

为APP集成客服功能,用户在使用APP过程中如果遇到问题时,能够和APP客服以聊天窗口的方式,进行咨询沟通.

图片 2

环信客户互动云聊天界面.png

1.XMPP(http://xmpp.org)

iOS9中新增App Transport Security(简称ATS)特性, 主要使到原来请求的时候用到的HTTP,都转向TLS1.2协议进行传输。这也意味着所有的HTTP协议都强制使用了HTTPS协议进行传输。原文如下:

二、环信SDK分类

环信的SDK分为两种:
①即时通讯云 : 类似于QQ/微信聊天的即时通讯--可实现多会话/多好友
②客户互动云 : APP内部咨询客服的即时通讯--单会话/单客服

今天我们聊一下"客户互动云",集成过程相对容易,环信官方也有集成文档,官方有文档了为什么我还要写一篇文章,是因为没有集成过环信的朋友来说肯定会遇到一些坑,但官方文档并没有明确说明集成过程中遇到问题的解决办法.而且环信文档有时和实际操作有出入,你有问题只能提交工单(回复很慢),比较耗时,因此本篇文章将从头开始,具体讲解每一步,排疑解难.

1.概念

XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能

补充:

图片 3

屏幕快照 2017-04-24 上午11.09.01.png

  • XMPP是一个基于个Socket通过的网络协议,目的是为了保存长连接,以实现即时通讯功能
  • XMPP的客户端是使用一个XMPPFramework框架实现
  • XMPP的服务器是使用Openfire,一个开源的服务器
  • 客户端获取到服务器发送过来的好友消息,客户端需要对XML进行解析,使用的解析框架的KissXML框架,而不是NSXMLParser/GDataXML
  • XMPP是一个即时通讯的协议,它规范了用于即时通信在网络上数据传输格式的,比如登录,获取好友列表等等的格式。XMPP在网络传输的数据是XML格式。比如登录:把用户名和密码放在xml的标签中,传输到服务器

图片 4

屏幕快照 2017-04-24 上午11.11.29.png

App Transport Security

App Transport Security (ATS) enforces best practices in the 
secure connections between an app and its back end. ATS 
prevents accidental disclosure, provides secure default behavior, 
and is easy to adopt; it is also on by default in iOS 9 and OS X 
v10.11. You should adopt ATS as soon as possible, regardless of 
whether you’re creating a new app or updating an existing one. 
If you’re developing a new app, you should use HTTPS exclusively. 
If you have an existing app, you should use HTTPS as much as you 
can right now, and create a plan for migrating the rest of your app 
as soon as possible. In addition, your communication through 
higher-level APIs needs to be encrypted using TLS version 1.2 with 
forward secrecy. If you try to make a connection that doesn’t 
follow this requirement, an error is thrown. If your app needs to 
make a request to an insecure domain, you have to specify this 
domain in your app’s Info.plist file.

三、客户互动云优势

  • 我觉得最大的优势就是客户互动云的后台有人工技术支持在线为你解答!!!!!!!!!,你再也不用提交工单了,你集成或者使用中遇到任何问题你都可以找他给你解答,态度很友好!

    图片 5

    很棒的技术人工客服.png

  • 为什么给你配了技术客服,你怎么这么牛逼呢?因为环信客户互动云自己申请的账号只能用7天,7天后你不续费就不能登录了,也不能咨询技术支持了,所以请续费3600元,否则请珍惜这7天,或者再重新申请注册个账号完美解决

    图片 6

    没有免费的午餐.jpg

2.XMPP的使用

讲解以下内容:
1.导入XMPP框架
2.登录 & 注销
3.注册
4.用户信息
5.好友
6.消息
7.文件传送(图片,音频)

如果我们在iOS9下直接进行HTTP请求是会收到如下错误提示:

三、集成前的配置工作

1.导入XMPP框架

1.1 下载XMPPFramework框架
GitHub: XMPPFramework

1.2导入依赖框架

图片 7

屏幕快照 2017-04-24 上午9.50.19.png

1.3导入一下文件夹

图片 8

屏幕快照 2017-04-24 上午9.52.17.png

**1.4导入XMPP扩展框架 **

图片 9

屏幕快照 2017-04-24 上午9.52.48.png

App Transport Security has blocked a cleartext HTTP ([http://] resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file.
1.首先登录环信主页,注册一个客户互动云账号(注:环信即使通讯云账号不能登录客户互动云)

图片 10

注册.png

2.登录&注销

2.1 实现用户登录的步骤如下:

1. 实例化XMPPStream并设置代理,同时添加代理到工作队列      

2. 使用JID连接至服务器,默认端口为5222,JID字符串中需要包含服务器的域名     

3. 在完成连接的代理方法中验证用户密码,连接完成后XMPPStream的isConnect属性为YES     

4. 在验证代理方法中判断用户是否登录成功        

5. 上线或者下线成功后,向服务器发送Presence数据,以更新用户在服务器的状态

2.2 各部分的实现代码如下:

  • 初始化 XMPPStream 并设置代理:
-(void)setupXMPPStream{

   _xmppStream = [[XMPPStream alloc] init];

   // 设置代理
   [_xmppStream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];
}
  • 连接到服务器
-(void)connectToHost{
   NSLog(@"开始连接到服务器");
   if (!_xmppStream) {
       [self setupXMPPStream];
   }

   // 设置登录用户JID
   //resource 标识用户登录的客户端 iphone android

   XMPPJID *myJID = [XMPPJID jidWithUser:@"aaa" domain:@"bourne-mbp.local" resource:@"iphone" ];
   _xmppStream.myJID = myJID;

   // 设置服务器域名
   _xmppStream.hostName = @"bourne-mbp.local";//不仅可以是域名,还可是IP地址

   // 设置端口 如果服务器端口是5222,可以省略
   _xmppStream.hostPort = 5222;

   // 连接
   NSError *err = nil;
   if(![_xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&err]){
       NSLog(@"%@",err);
   }

}
  • 连接成功后发送密码验证
-(void)sendPwdToHost{
   NSLog(@"再发送密码授权");
   NSError *err = nil;
   [_xmppStream authenticateWithPassword:@"123456" error:&err];
   if (err) {
       NSLog(@"%@",err);
   }
}
  • 授权成功后,发送 在线 消息
#pragma mark  授权成功后,发送"在线" 消息
-(void)sendOnlineToHost{

   NSLog(@"发送 在线 消息");
   XMPPPresence *presence = [XMPPPresence presence];
   NSLog(@"%@",presence);

   [_xmppStream sendElement:presence];
}

2.3 需要实现的几个代理方法

#pragma mark 与主机连接成功
-(void)xmppStreamDidConnect:(XMPPStream *)sender{
    NSLog(@"与主机连接成功");

    // 主机连接成功后,发送密码进行授权
    [self sendPwdToHost];
}

#pragma mark  与主机断开连接
-(void)xmppStreamDidDisconnect:(XMPPStream *)sender withError:(NSError *)error{
    // 如果有错误,代表连接失败
    NSLog(@"与主机断开连接 %@",error);
}

#pragma mark 授权成功
-(void)xmppStreamDidAuthenticate:(XMPPStream *)sender{
    NSLog(@"授权成功");

    [self sendOnlineToHost];
}

#pragma mark 授权失败
-(void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(DDXMLElement *)error{
    NSLog(@"授权失败 %@",error);
}

2.4 注销登录

  • 发送离线信息
  • 断开连接
-(void)logout{
    // 1." 发送 `离线` 消息"
    XMPPPresence *offline = [XMPPPresence presenceWithType:@"unavailable"];
    [_xmppStream sendElement:offline];

    // 2. 与服务器断开连接
    [_xmppStream disconnect];
}

新特性要求App内访问的网络必须使用HTTPS协议,具体内容大家可以自行度娘,

2.登录客户互动云,设置后台信息
  • 登录成功后显示以下界面,按图操作往下走:

    图片 11

    1.进入管理员模式.png

![](https://upload-images.jianshu.io/upload_images/3244193-22842fcfb1b947f4.png)

2.添加关联APP.png
  • 如果你已经有环信"即使通讯云"账号,且想关联你账号中的项目,则按下图操作
    (不想关联账号项目的跳至图9快速创建)

图片 12

3.关联IM账号.png

图片 13

4.填写关联项目信息.png

此时弹出来的这个框,需要填关联的应用的信息,这些信息在即时通讯云管理后台才有,所以需要登录环信即时通讯云账号,进入到管理后台,接着看图往下走:

图片 14

5.登录管理后台.png

图片 15

6.点击要关联应用.png

图片 16

7.填写信息(点击图片查看大图).png

图片 17

8.创建成功.png

  • 如果你没有环信"即使通讯云"账号,或者不想关联你账号中的项目,可直接快速创建关联项目

图片 18

9.快速创建关联项目.png

图片 19

10.快速创建完成.png

这个后台是自动生成的关联的,点进去后会显示一个自动创建的项目名称,此后台和即时通讯的管理后台功能一样,可以创建用户,可以配置推送证书等

图片 20

11.登录后台.png

图片 21

12.管理后台.png

3.注册

  • 与登录一样,首先发送帐号建立连接
  • 连接成功后,发送注册的密码
  • 注册成功后,框架会通知代理

实现以下代理方法

- (void)xmppStreamDidRegister:(XMPPStream *)sender {
    NSLog(@"注册成功");

    if (_resultBlock) {
        _resultBlock(BWXMPPLoginResultSuccessed);
    }
}

- (void)xmppStream:(XMPPStream *)sender didNotRegister:(DDXMLElement *)error {
    if (_resultBlock) {
        _resultBlock(BWXMPPLoginResultFailure);
    }
}

我们这里只是说明一下如何关闭该特性,让其可以访问http开头的网址.

3.下载SDK,地址 : iOS客户互动云SDK下载

图片 22

环信文档.png

注意点 :
①处,不仅能下载SDK,也能下载②所说的商城demo
②处,下载的商城demo不能直接运行,有报错需修改,①处下载的demo可以直接运行
③处,从①下载的SDK不包括HelpDeskUI,HelpDeskUI只能从商城demo中复制一份
④处,因此是三个文件夹

图片 23

HelpDeskUI.png

HelpDeskUI是环信搭建的聊天UI界面,这个文件夹已经将单聊所有的基础功能(文本消息,语音,发送图片,表情,聊天记录,删除记录,消息刷新)全部写完了,所以可以直接用,因此就像文档上所说的,5分钟集成,这个demo写的也相对完善(没有发送文件功能),可以好好利用.

郑重声明:本文版权归新匍京a奥门-最全网站手机版app官方下载所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。