用户工具

im快速入门

IM快速入门

一、IM简介

即时通讯(IM)是云之讯平台向开发者提供的免费通讯云服务。开发者通过云之讯平台,不必搭建复杂的服务端后台,就可以将即时通讯功能快速集成到应用中。

云之讯提供以下组件
  • 客户端IM SDK:云之讯平台为适应不同用户使用场景,方便开发者更加自主方便的集成云之讯通讯业务能力,将与云之讯平台长连接的TCP通讯层独立封装,独立管理通讯传输,更好的确保TCP稳定性,而IM业务能力库则更专注对业务逻辑处理,层次更加分明清晰。
  • 客户端IM UI组件(IMKit):云之讯平台将IM应用的各种场景进行界面组件封装,大大节省开发者界面开发时间,只需简单的界面加载,就能快速高效的集成使用云之讯平台IM能力。
  • 服务端REST API:云之讯平台对外统一开放标准接口,账号体系接口、平台各业务接口独立分离,更好的满足各业务需求快速高效迭代要求。
  • 服务端AS SDK:高效集成、快速使用,是云之讯服务器宗旨,为开发者服务器能更快速、便捷对接云之讯平台,节省与平台REST API接口调试流程,云之讯将与平台REST API通讯接口进行封装,开发者无需关注通讯细节,只需要在开发者应用服务器调用封装包接口,就可以快速的完成与云之讯平台对接。

1、架构介绍

开发者通过APP集成云之讯平台SDK,同时使用平台的REST接口服务可以实现IM的单聊、群组、讨论组功能。
云之讯平台提供群组管理、讨论组管理、讨论组关系维护,单聊消息、群组消息、讨论组消息实时送到、消息推送和离线消息拉取,系统消息通知,历史消息存储,保证消息不丢失、实时性、可靠性和安全性。

  • 任意子账号体系:开发者应用下注册用户可以是任意子账号(数字、字母(区分大小写)组成,最长50位),用户不必自己在App后台为用户创建云之讯子账号,可以直接使用用户在开发者App中的账号进行登录。 任意子账号体系只在IM3.0以后的版本中支持。


nolink

2、集成流程

集成流程关键环节:

二、基础概念

1、业务篇

1.1、单聊

指两个用户一对一进行聊天,会话关系由云之讯负责建立并保持,退出聊天界面或者离线后可以收到推送通知。

1.2、讨论组

指两个以上用户一起进行聊天,用户可以自行添加好友生成一个讨论组聊天,会话关系由云之讯负责建立并保持,退出聊天界面或者离线后可以收到推送通知。

1.3、会话列表

指各种会话依照顺序先后排列的界面,其中会话列表中的每一个列表项称之为一条会话。排列的先后顺序会依赖于置顶、最新会话、未读会话和时间等因素。
nolink

1.4、聊天界面

指聊天的具体界面,显示聊天的标题、成员头像、聊天内容、输入框等。
nolink

2、开发篇

2.1、Rest

为方便不同行业的开发者理解和快速接入,我们将服务端的通讯服务接口提供成一套 Restful 的标准接口,基于这些接口开发者就只需要具备基本的HTTP协议知识背景,以及结合任何一门熟悉的开发语言,就可完成在现有业务的基础上完成集成通讯服务。
Rest是一套新兴的web通讯协议,访问方式和普通的http类似,平台接口分get和post方式请求。协议支持xml,json两种请求方式,采用md5加密算法的方式,通过url参数的形式发送参数。

2.2、Token

Token 即用户令牌,相当于您APP上当前用户连接云之讯的身份凭证。每个用户连接服务器都需要一个 Token,用户更换即需要更换 Token。每次初始化连接服务器时,都需要向服务器提交 Token。

2.3、会话及会话类型

会话 可以理解为当前用户同特定目标(一个用户,一个讨论组、一个群组)的一组聊天消息的集合及属性。
会话类型 是一个枚举,包括:单聊、讨论组聊天、群组聊天等。
会话的基本属性包括会话的发送者、接收者(可能是一个用户,也可能是一个讨论组、一个群组)、聊天的消息集合、会话的设置信息等。

Android 相关类和枚举

  ConversationInfo
  CategoryId

iOS 相关类和枚举

  UCSConversation
  UCS_IM_ConversationType

2.4、消息、消息内容及消息类型

消息 可以理解为当前用户同特定目标的一条聊天内容,除了包括消息内容,还包括发送者、接收者、消息方向等属性。
消息类型 包括:文本消息、语音消息、图片消息、位置消息等;我们后续还将持续跟随业界脚步,发布一系列消息类型。
消息内容 是指不同消息类型对应的实体容器,一种消息类型对应一种消息内容实体。

请参考:
Android 相关类和枚举

  消息基类 ChatMessage
  单聊消息 SingleChat
  讨论组消息 DiscussionChat
  群组消息 GroupChat

iOS 相关类和枚举

  消息实体 UCSMessage
  消息基类 UCSMsgContent
  文字消息 UCSTextMsg
  语音消息 UCSVoiceMsg
  图片消息 UCSImageMsg
  位置消息 UCSLocationMsg
  自定义消息 UCSCustomMsg
  

三、云之讯消息推送概念

很多开发者在集成云之讯IMSDK的过程中,经常受到消息体系、推送机制的各种概念困扰。同时,大家对通知、推送,广播、系统消息等概念又没有统一的认识,造成了认知和沟通困难。这里我们为大家详细的解答下云之讯的整个消息和推送体系设计,以便大家可以更好的集成云之讯SDK进行开发。

1、命名约定与概念解析

1.1、通知(Notification)

移动开发中的通知是一种在用户界面上展示信息的概念,具体也就是在iOS或者安卓设备上展示一条提示。
在iOS平台上,表现如下图这种常见形式:
nolink 在安卓平台上,表现入下图这种常见形式:
通知分为本地通知(Local Notification)和远程通知(Remote Notification)。尽管您看到的是一样的界面展现,但是他们分别来自本地发起和远程发起。本地通知指的是您的应用程序在前台、或者在后台但仍然在生命周期存活,此时收到消息,会直接通过前台的应用程序弹出提示窗口。远程通知指的是您的应用程序已经完全退出,应用进程已经不存在,此时通过 iOS 上的 APNS 系统服务或者 Android 上的服务进程收到消息,并弹出提示栏。大家开发和调试过程中,务必要清楚本地通知和远程通知的区别。

1.2、推送(Push)

推送是一种技术概念,是指从服务端实时发送信息到客户端。
大家概念中的典型推送服务是类似 APNS(Apple Push Notification Service)、GCM(Google Cloud Messaging) 等服务。在国内,由于谷歌服务不能使用,因此您的应用必须使用第三方或者自己研发的服务来推送。
在某些场合,iOS 平台的推送(通过 APNS 的 Push)和远程通知(Remote Notification)表示相同的意思,可以互相替换使用。

1.3、广播(Broadcast)

广播是一种业务概念,是通过后台管理界面或者调用服务端接口,向 App 中的所有用户发送一条消息。通常“广播”和“推送”是开发者容易产生混淆的地方。

1.4、系统消息(System Message)

系统消息是一种业务概念,是指利用系统帐号(非用户帐号,用户不可登录)向用户发送的消息,既可以是通过调用广播接口发送给所有人的消息,也可以是加好友等单条通知消息。 在云之讯平台中,其实并不存在系统消息的概念,一般系统消息特指会话类型(UCS_IM_ConversationType)为“系统(UCS_IM_SYSTEMMSG)”的会话中的消息。

2、iOS平台消息与推送逻辑解析

2.1、本地通知和远程通知

首先要了解 iOS 的通知推送概念。大家平时看到的 iOS 弹出的提示,其实是由两种完全不同的机制产生的。
第一种:本地通知(Local Notification) 本地通知是通过调用本地接口,由 iOS 设备直接生成发布的。
nolink 第二种:远程通知(Remote Notification)
远程通知是通过苹果 APNS(Apple Push Notification Service) 服务发送到客户端的通知。
nolink

如果您需要进一步了解iOS离线推送,请参考iOS消息推送详解


页面工具