基于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.在官网注册一个账号,然后要仔细阅读快速入门文档GoEasyicon-default.png?t=N7T8https://link.zhihu.com/?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 手动下载

下载地址1icon-default.png?t=N7T8https://registry.npmjs.org/goeasy/-/goeasy-2.8.8.tgz

        3.1.1.3 导入
import方式
    import GoEasy from 'goeasy'
script方式
    <script src="https://cdn.goeasy.io/goeasy-2.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 手动下载

下载地址1icon-default.png?t=N7T8https://registry.npmjs.org/goeasy-lite/-/goeasy-lite-2.8.8.tgz

        3.1.2.3 导入
import方式
    import GoEasy from 'goeasy-lite'
script方式
    <script src="https://cdn.goeasy.io/goeasy-lite-2.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.imgoeasy.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. 初始化和建立连接

 2. 订阅 (Subscribe)

客户端订阅一个channel,客户端可以是网页、小程序或基于Web技术(Uniapp,ionic等)开发的游戏或APP。

channel从哪里来,如何创建,应该传入什么呢?

根据您的业务需求来设定,channel可以为任意字符串,除了不能包含空格,和不建议使用中文外,没有任何限制,只需要和消息的发送端保持一致,就可以收到消息。channel可以是您直播间的uuid,也可以是一个用户的唯一表示符,一个app可以订阅多个channel,可以任意定义,channel不需要创建,可随用随弃

 3. 发布(Publish)

向channel发送消息, 发送端既可以是客户端, 也可以是服务端(调用Rest接口) 

4. 客户端收到消息

当发送端往一个channel上成功发布了一条消息后, 所有订阅该channel的客户端都可以收到这条消息。 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值