关于极光IM,你可能想知道的事。
什么是极光IM?
极光IM是极光继JPush之后推出的又一造福APP开发者的重量级产品,我们延续JPush的传统,将其命名为JMessage。
JMessage旨在帮助APP开发者们用最短的时间,最低的成本给app集成IM社交特性,使您的app瞬间从单机应用变成社交神器。
我们希望看到app全民社交时代的到来,最粗暴的效果就是:一切app皆可约。
JMessage与JPush是什么关系?
JMessage 以 JPush 技术作为基础,共享 JPush 的网络长连接。在保留了 JPush 推送全部功能的基础上增加了 IM 功能。
集成 JMessage 服务的应用,从客户端 SDK,到服务端 REST API,Web 控制台,都具备并且兼容 JPush 的全部功能。
关系形象如图:
小贴士:对于同一个应用, JMessage 与 JPush 使用同样的 AppKey。
JMessage与JPush 我该选谁?
虽然现在人们多少都有点选择困难症,不过待我帮你理清使用场景之后,这都不是事儿!
场景一:你的需求是对安装你的app的设备推送信息,不管是全广播推,还是按标签,按分组推,JPush已完全满足你。
场景二:也许你的新产品还在蛰伏,现阶段只用push,但是在不久的将来也是会上IM的,那么用JMessage吧,"JPush就在我体内!"
小贴士:同时有push和IM服务需求的开发者,强烈建议使用JMessage,因为JMessage中的push和IM只需要维护一个长链接。相比于集成一套push服务再集成一套IM服务,JMessage在实现两种服务共存的同时可有效节约电量和流量。
场景三:产品已有账号系统,想为用户添加即时通信功能,怎么办?JMessage是你的不二选择! 马上就能体会到:新技能get √ 。
场景四:产品已有账号系统,正在使用JPush或者其他服务商的push功能,但是更想使用基于账号的推送服务,也强烈建议使用JMessage。
小贴士:现存的push服务大多基于设备推送,并使用标签/别名来分组,而JMessage可以基于您已有的账号系统来推送,更加灵活高效。
极光为什么做IM?
长期JPush业务的技术积累,使我们对大规模,高并发,服务稳定等刚性需求拥有足够的自信。
Push和IM业务的完美结合,一个网络连接同时支持 IM 与 Push 业务,鱼和熊掌亦可兼得。
部署多个服务节点,基于 JPush 连接可就近接入,解决网络运营商之间互通的问题;
JPush 团队原本就是做IM app起家,对 IM 业务具有更深刻的理解,能够持续地改进与革新 IM 服务。
使用JMessage 可以做什么?
1. 文本,语音,图片,各种聊天类型不在话下。
2. 支持 1v1 solo单聊,1Vn 组织群聊。
3. 用户维护:注册,登录,头像以及其他资料设置。
4. 群组维护:创建群组,加入群组,退出群组。
5. Android, iOS两大移动平台 外加 Web平台都支持。
6. 好友关系维护,敬请期待……
极光为JMessage用户提供什么?
1. 客户端产品。
① Android IM SDK (内置 JPush SDK), Android Demo工程。
② iOS IM SDK (内置 JPush SDK), iOS Demo工程。
③ Web 产品,提供 云端 IM 服务。
小贴士:提供的工程具有完整IM功能和源码,除了起到API教程的作用外,您也可以修改Logo和界面后直接体验自制IM。
还有多套UI的支持,敬请期待……
2. 提供REST API满足常用功能 .
① 批量注册用户。② 发送消息。③ 用户信息维护。④ 群组维护。
3. Web Portal 控制台 .
① 管理应用。② 发送消息。 ③ 注册用户。 ④ 维护群组。
小贴士:从您创建的应用界面,可以找到Web IM入口,该App的所有用户与该App的AppKey关联,同一AppKey下的用户才可互通。
后续会发布Web Client,可将入口切入自己的网站上。
JMessage 的服务架构
示意图
示意图解释
JMessage架构是JPush 新增了 IM 服务后所形成的,由图可知:
1. IM SDK 里支持的推送部分,与 IM 部分使用同一个网络长连接。
因此,在保证push和IM完美共存的同时,也不用担心设备资源消耗的明显提升。
2. 接入服务器在两个服务之间是共享的;
接入服务器之上两套服务是相对独立的。
3. JPush的客户端仅支持单向接收推送;
JMessage的客户端和Web端是可以双向收发消息的。
4. 开发者可以使用我们提供的 REST API 在应用服务器端来适配自己的业务策略。
JMessage集成向导
从压缩包中获取的内容。
1. AndroidManifest.xml :客户端配置参考文件。
2. jar文件:提供用户的接口,实现核心业务。
3. so文件:native 依赖库。
4. example:一个主流社交软件的Demo,演示JMessage的用法。
集成步骤:
1. 为项目导入依赖的库文件。
① 将压缩包解压。
② 将jar文件复制到app工程的libs/目录下。格式为:jmessage-sdk-android-x.x.x.jar(x.x.x为版本号)。
注意:如工程之前集成过JPush服务,请先将JPush的jar包删除,以免编译错误。
③ 将so文件复制到app工程的 libs/armeabi 目录下。
④ 如需支持多平台,我也也会提供so包放到 libs/armeabi-v7a, libs/x86, libs/mips中。
2. 配置AndroidManifest.xml。
根据SDK压缩包里的AndroidManifest.xml样例文件来配置app工程的AndroidManifest.xml。
① 复制备注为 “Required”的部分。
② 将所有“您自己的包名”全部替换为当前应用的包名,和您在web页面上创建应用时填写的包名一致。
③ 将meta-data标签中 “您的APPKey”替换为web页面上为您生成的唯一APPKEY。
3. 添加代码:
① 初始化。在应用的自定义 Application 的 onCreate 方法里,来初始化 JMessage SDK。
public void onCreate() {
super.onCreate();
Log.i("JMessageDemoApplication", "Application onCreate");
JMessageClient.init(getApplicationContext()); //初始化JMessage服务.
JPushInterface.setDebugMode(true);} //设置调试模式。
② 添加统计代码。将"用户使用时长","活跃用户",等统计结果,上报到服务器,在 Portal 上展示给开发者。
@Override
protected void onResume() {
super.onResume();
JPushInterface.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
JPushInterface.onPause(this);
}
③ 根据JMessage提供的API,在自己的app中实现注册,登录,聊天,群组……等功能。
详细的API说明请参考 API文档: http://docs.jpush.io/client/im_sdk_android/
4. Web Client使用。
在 Web 控制台上,应用的展示界面,可以找到该应用的 Web IM 入口。
从这个入口,该 App 的用户,可以凭用户名与密码登录,使用 Web 端参与聊天。
以后将发布 Web Client 给开发定制,嵌入到自己的网站上。
最后,极光想对开发者说的话
初识JMessage之后,有没有特别想尝试呢?但是一时半会儿手头又没有合适的工程对吗?
烦请打开我们的 step by step 教程:http://jpush.blog.51cto.com/6164982/1628962 十分钟让你拥有自己的移动IM App。
非常期待听到极光服务新老用户的建议和吐槽,以便我们不断地改进产品和提升服务!
我们不擅长高调的发布和浮夸的宣传,踏实地做产品和认真服务用户才是我们的强项。
全体极光人的努力,只是希望得到您的选择与肯定!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。