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對於圖片和視頻,一般的作法都是,只推送文件路徑,而不會推送文件自己。你若是有注意的話,當您接受圖片和視頻的時候,收到消息後,等一下子才能看,就是由於發送的時候,只發送了路徑。