Uniapp做为近来最火的移动端开发技术,一套代码,能够打包成Android/iOS app和各类平台的小程序,可谓是没有最方便只有更方便。html
GoEasy上架DCloud Uniapp插件市场已经有一个多月了,收到不少Uniapp开发人员的赞赏和好评,小编在此隔着屏幕向你们鞠躬,小编和GoEasy团队会继续努力,持续为Uniapp开发者提供最简单且优雅的API,稳定高速可靠的即时通信服务。android
这段时间,也收到了不少朋友的一些问题?好比:git
一、GoEasy和Uniapp websocket API有什么区别和优点?github
Uniapp官方的websocket API主要是用来与您的websocket服务通信,因此使用Uniapp websocket的前提是,首先要搭建好您本身的websocket服务,而后与之通信。这是一个纯技术的API,在创建网络链接后,还有不少的工做须要本身来完成,好比:web
等等不少细致而繁杂的工做,好比websocket的安全机制和性能优化;小程序
除此以外服务端也有不少工做须要本身完成,有兴趣本身搭建websocket的话,能够参考这篇技术分享《搭建websocket消息推送服务,必需要考虑的几个问题》微信小程序
而GoEasy是一个成熟稳定的websocket企业级PAAS服务平台,开发人员不须要考虑websocket服务端的搭建,只须要几行代码,就能够轻松实现客户端与客户端之间,服务器与客户端之间的的websocket通讯,不须要考虑性能,安全,高可用集群的问题。只须要全力专一于开发本身的业务功能就行了。安全
GoEasy已经内置websocket中必备的心跳,断网重连,消息补发,历史消息和客户端上下线提醒等特性,开发人员也不须要本身搭建websocket服务处理集群高可用,安全和性能问题。GoEasy已经稳定运行了5年,支持千万级并发,成功支撑过不少知名企业的重要活动,安全性和可靠性都是久经考验。性能优化
二、GoEasy在Uniapp开发中主要用在哪些场景呢?服务器
首先从技术上说,Uniapp支持的全部技术android, iOS和小程序,GoEasy都是完美支持的。
从应用场景上来讲,全部须要websocket通讯的场景,GoEasy均可以完美支持:
三、GoEasy的文档为何这么简单?简单到我都不知道如何使用
简单还很差吗?GoEasy从研发的第一天,就把追求API的极简做为咱们的工做重点。严格控制接口的数量,就是是为了下降开发人员的学习成本,其实就是为了让您爽啊!但这并不影响GoEasy完美支持全部的websocket即时通信需求。
今天小编就手把手的教您用GoEasy在Uniapp下,最短的时间实现一个的web即时通信Demo。
本demo已经经过小程序, iOS和Android的真机测试,完整源代码已经上传github,下载后,只须要将代码里的appkey换成本身的common key,就能够体验了。下载地址:
https://github.com/GoEasySupport/goeasy-uniapp-helloworld
一、获取appkey
GoEasy官网(http://www.goeasy.io/)上注册帐号,建立一个应用,拿到您的appkey
GoEasy提供了两种类型的appkey:
Common key: 便可以接收消息,也能够发送消息,与Subscriber Key最大的区别就是有写权限,能够发消息。适用于有消息发送需求的客户端和服务端开发。
Subscriber key: 只能接收消息,不能够发送消息,与Common Key最大的区别就是没有写权限,只能收消息。能够用于一些没有发送需求的客户端。
二、获取GoEasy SDK
两个方式:
DCloud Uniapp的插件市场下载:https://ext.dcloud.net.cn/plugin?id=1334
也能够直接在goeasy官网下载:https://www.goeasy.io/cn/doc/client/get-goeasy-js.html
三、初始化GoEasy对象
在main.js中将goeasy初始化为Uniapp的全局对象,方便全部页面都能方便的调用,同时也避免多个页面反复new GoEasy对象。
根据您在GoEasy后台建立应用时选择的区域,来传入不一样的Host,若是您建立goeasy应用时,选择了杭州,那么host:"hangzhou.goeasy.io"。选择了新加坡,host:"singapore.goeasy.io"。
若是您的大部分用户都是在国内,建立应用时,记得选择杭州,以便得到更快的通信速度。
// 在main.js中将goeasy初始化为全局对象,全部页面都能方便的调用,也避免多个页面反复new GoEasy对象 Vue.prototype.$goEasy = new GoEasy({ host: "hangzhou.goeasy.io", appkey: "my_appkey", //替换为您的应用appkey onConnected: function() { console.log('链接成功!') }, onDisconnected: function() { console.log('链接断开!') }, onConnectFailed: function(error) { console.log('链接失败或错误!') } });
四、uniapp端接收消息
this.$goEasy.subscribe({ channel: "my_channel", //替换为您本身的channel onMessage: function (message) { alert("Channel:" + message.channel + " content:" + message.content); } });
不少朋友会问channel从哪里来,如何建立,应该传入什么呢?
根据您的业务需求来设定,channel能够为任意字符串,除了不能包含空格,和不建议使用中文外,没有任何限制,只须要和消息的发送端保持一致,就能够收到消息。channel能够是您直播间的uuid,也能够是一个用户的惟一表示符,能够任意定义,channel不须要建立,能够随用随弃。
五、uniapp端发送消息
发送时,须要注意channel必定要和subscriber的channel彻底一致,不然没法收到。
this.$goEasy.publish({ channel: "my_channel", //替换为您本身的channel message: "Hello, GoEasy!" //替换为您想要发送的消息内容 });
本代码源码下载:
https://github.com/GoEasySupport/goeasy-uniapp-helloworld
小程序特别强调:
若您须要打包为微信小程序,须要在微信公众号平台配置socket合法域名,不然没法使用。 具体步骤:
访问https://mp.weixin.qq.com,进入微信公众平台|小程序 -> 设置 -> 开发设置 -> 服务器域名
socket合法域名-> 添加 goeasy的地址:wx-hangzhou.goeasy.io(记得wx-开头)
若您建立GoEasy应用时选择了新加坡区域则添加地址:wx-singapore.goeasy.io
答疑时间:
一、个人服务器端能够发送消息吗?都支持些哪些语言?
固然能够,任何语言均可以经过调用goeasy的Rest API发送消息,同时为了你们方便,GoEasy的官方文档里,也准备了Java, C#,NodeJS,PHP,Ruby和Python等常见语言调用REST API的代码,这里获取更多详情:https://www.goeasy.io/cn/doc/server/publish.html
二、GoEasy能够发送图片,语音和视频吗?
固然能够,您能够经过推送文件路径的方式来实现文件的发送。
按照行业惯例,不论MSN,微信,QQ对于图片和视频,一般的作法都是,只推送文件路径,而不会推送文件自己。你若是有注意的话,当您接受图片和视频的时候,收到消息后,等一下子才能看,就是由于发送的时候,只发送了路径。