实时通信之GoEasy入门学习"/>
基于websocket实现实时通信之GoEasy入门学习
一. GoEasy介绍
1.1 平台背景
Websocket允许服务端主动向客户端推送数据,正在越来越广泛被应用于各种系统开发中。但是,在websocket的实际开发中,技术团队却时常面临各种技术挑战:
- 消息丢失,消息重复
- 性能低下,消息延时高,压力测试成本高,性能优化技术难度高
- 服务不稳定,用户量或消息发送量增长时,服务频繁崩溃
- 集群搭建难度大,难以实现高可用和横向扩展
- 服务器和带宽费用高,运维成本高
- 开发难度大,周期长,人力消耗大
导致:
- 用户体验不佳,客户满意度低
- 甚至因为websocket功能消耗了大量技术资源,影响团队专注于核心业务,项目进度无法保证,各方面成本大大增加
1.2 平台介绍:
GoEasy旨在通过打造一个简单易用、低成本、功能强大、高性能低延时、安全可靠的Websocket平台,帮助技术团队快速实现websocket实时推送,IM聊天,Uniapp通知栏推送和微信模板消息推送。
GoEasy于2015年上线,已稳定运行7年,服务了超过4000家政企客户,多次成功支撑包括一加手机,四川卫视,德勤中国,KFC中国等知名客户的大型用户爆发式重要活动。长期稳定支撑爱尔眼科,顾家家居,清华大学等政企客户的业务系统,应用于格林豪泰酒店集团,大参林药业集团等数万个连锁门店的门店系统。
1.3 要点:
简单易用
- 一个SDK,自动兼容Web页面、各种小程序、Uniapp、Taro和Cocos等各种Web技术平台
- 几行代码,轻松搞定websocket实时通讯,降低开发难度,缩短开发周期
更低成本
- 免费试用5年
- 无需搭建websocket服务器,降低您的开发和维护成本
主要功能
- Websocket实时通讯
帮助开发者快速实现客户端与客户端,服务端与客户端之间的数据实时通讯,主要用于:系统/订单提醒、可视化大屏数据实时更新、聊天室和直播弹幕、页面协同编辑、游戏联网对战、位置实时跟踪、扫码登录和支付结果更新。 【Websocket介绍】 - IM聊天即时通讯和在线客服
帮助开发者快速实现私聊、群聊、在线客服等各种场景的IM功能,支持文字/语音/图片/视频/自定义类型消息发送。 【IM即时通讯介绍】 - Uniapp通知栏推送
对于Uniapp开发的iOS和Android APP,当APP在后台运行或杀掉进程后,可通过推送通知栏消息提醒用户。GoEasy已集成所有主流手机厂商通道:苹果iOS(APNs)、华为、小米、OPPO、VIVO、魅族和Google FCM。【Uniapp推送介绍】 - 微信模板消息推送
当微信小程序在后台运行,用户下线或者APP在后台运行或者进程被杀时,通过推送微信模板消息提醒用户。
安全可靠
- 实时检测网络状态,断网自动重连,消息自动补发和去重检查,确保消息不丢失、不重复
- 跨区多活灾备,自动水平扩展,99.95%高可用承诺
- 完善的安全访问控制机制和GoEasy OTP技术结合HTTPS确保您的数据私密传输
高性能 低延时
- 支持海量用户同时在线,千万级消息实时送达
- 多次完美支撑知名客户的爆发式重要活动
二. 获取开发账号和Appkey :
1.在官网注册一个账号,然后要仔细阅读快速入门文档GoEasy/?target=http%3A//goeasy.io/cn/home
2. 注册成功后创建一个你的应用,如图:
图一:在GoEasy我的应用页面上点击创建新的应用,进入创建页面
图二:在创建页面填写创建信息,点击确定
图三:华东区域下的客户端就是创建的应用名称
3.选择创建好的应用,点击进入详情,查看应用详情
App Key说明
1. Basic keys:
基础Keys,简单易用。
Keys | 描述 | 接收消息 | 发送消息 | 客户端使用 | 服务端使用 |
---|---|---|---|---|---|
Common Key | 通用Key | √ | √ | √ | √ |
Subscribe Key | 订阅Key | √ | × | √ | × |
2. Professional Keys:
专业Keys,安全可靠,用于和OTP结合保护页面中的明文Appkey。
Keys | 描述 |
---|---|
Client Key | 客户端Key,仅限用于客户端发送和收消息,必须和GoEasy-OTP搭配使用,无法单独使用 |
Rest key | 服务端Key,仅限用于服务端调用Rest接口 |
Secret key | 安全密钥,用于在服务端为客户端生成OTP,什么是GoEasy-OTP? |
三. SDK下载与导入
3.1 Web SDK
3.1.1 标准版下载
标准版SDK包含GoEasy Websocket和IM的所有功能,满足需要GoEasy的所有场景。
3.1.1.1 NPM方式
npm install goeasy@2.8.8 --save
3.1.1.2 手动下载
下载地址1.8.8.tgz
3.1.1.3 导入
import方式
import GoEasy from 'goeasy'
script方式
<script src=".8.8.min.js"></script>
3.1.2 精简版下载
精简版SDK不包含IM功能,仅包含Websocket功能,体积比标准版小一半,适用于不需要IM的应用。
3.1.2.1 NPM方式
npm install goeasy-lite@2.8.8 --save
3.1.2.2 手动下载
下载地址1.8.8.tgz
3.1.2.3 导入
import方式
import GoEasy from 'goeasy-lite'
script方式
<script src=".8.8.min.js"></script>
3.2 Android
dependencies {
implementation 'io.goeasy:goeasy-client-java:0.1.4'
}
3.3 iOS
pod 'GoEasySwift', '0.1.2'
四. GoEasy SDK架构介绍:
4.1 GoEasy
GoEasy SDK的基础对象,整个SDK的入口,负责连接的建立和断开。包含goeasy.im
和goeasy.pubub
两个模块,分别专注于IM聊天和其他所有需要websocket的场景。不论您是要使用Pubsub,还是IM聊天, 您都需要首先需要初始化GoEasy对象,并建立连接。初始化GoEasy对象的时候,必须明确声明要使用的模块,根据场景,选择使用pubsub或im,也可以两者同时使用。
4.2 PubSub (goeasy.pubsub)
GoEasy PubSub是专门用于实现各种Websocket常规通讯功能(IM聊天除外),只需要几行代码,就可以帮助web前端开发者轻松实现各种websocket实时通讯功能:
- 提醒类: 系统提醒,订单提醒等
- 数据实时更新:页面同步,位置实时跟踪,实时图表
- 直播间聊天室(用Pubsub更简单)
- 用户在线装状态监听
- 手机APP通知栏推送
- 游戏对战
4.3 IM即时通讯 (goeasy.im)
GoEasy IM是GoEasy针对IM私聊、群聊和在线客服等IM聊天类需求,专门为Web前端开发者打造的IM即时通讯产品,适用于各种IM聊天场景:
场景分类 | 场景 |
---|---|
平台互动 | 站内私信 医患沟通 在线招聘 游戏互动 家校交流 线上课堂 |
政企办公 | 政府办公交流 企业工作沟通 |
社交沟通 | 兴趣社群 婚恋交友 校园交友 私密交友 |
在线客服 | 电商沟通 用户咨询 技术支持 |
五. 工作流程:
GoEasy Websocket采用 发布/订阅(PubSub) 的模式, 帮助开发者能非常简单的实现一对一、一对多的即时通讯功能,适用于除IM聊天以外的所有场景。
1. 初始化和建立连接
- 集成GoEasy SDK
- 初始化与建立连接
2. 订阅 (Subscribe)
客户端订阅一个channel,客户端可以是网页、小程序或基于Web技术(Uniapp,ionic等)开发的游戏或APP。
channel从哪里来,如何创建,应该传入什么呢?
根据您的业务需求来设定,channel可以为任意字符串,除了不能包含空格,和不建议使用中文外,没有任何限制,只需要和消息的发送端保持一致,就可以收到消息。channel可以是您直播间的uuid,也可以是一个用户的唯一表示符,一个app可以订阅多个channel,可以任意定义,channel不需要创建,可随用随弃
3. 发布(Publish)
向channel发送消息, 发送端既可以是客户端, 也可以是服务端(调用Rest接口)
4. 客户端收到消息
当发送端往一个channel上成功发布了一条消息后, 所有订阅该channel的客户端都可以收到这条消息。
更多推荐
基于websocket实现实时通信之GoEasy入门学习
发布评论