Uniapp使用GoEasy實現(xiàn)websocket實時通訊

Uniapp作為近來最火的移動端開發(fā)技術(shù)均践,一套代碼桂躏,可以打包成Android/iOS app和各種平臺的小程序抢埋,可謂是沒有最方便只有更方便宋渔。

GoEasy上架DCloud Uniapp插件市場已經(jīng)有一個多月了州疾,收到很多Uniapp開發(fā)人員的贊揚和好評,小編在此隔著屏幕向大家鞠躬皇拣,小編和GoEasy團隊會繼續(xù)努力严蓖,持續(xù)為Uniapp開發(fā)者提供最簡單且優(yōu)雅的API,穩(wěn)定高速可靠的即時通訊服務。

這段時間颗胡,也收到了很多朋友的一些問題毫深?比如:

1、GoEasy和Uniapp websocket API有什么區(qū)別和優(yōu)勢杭措?

Uniapp官方的websocket API主要是用來與您的websocket服務通訊费什,所以使用Uniapp websocket的前提是,首先要搭建好您自己的websocket服務手素,然后與之通訊鸳址。這是一個純技術(shù)的API,在建立網(wǎng)絡(luò)連接后泉懦,還有很多的工作需要自己來完成稿黍,比如:

需要自己實現(xiàn)心跳機制,來維護網(wǎng)絡(luò)連接崩哩,來判斷客戶端的網(wǎng)絡(luò)連接狀態(tài)巡球;

需要自己實現(xiàn)斷網(wǎng)自動重連;

需要自己維護消息列表邓嘹,確保遇到斷網(wǎng)重連后酣栈,消息能夠補發(fā);

需要自己維護一個客戶端列表汹押;

...

等等很多細致而繁雜的工作矿筝,比如websocket的安全機制和性能優(yōu)化;

除此之外服務端也有很多工作需要自己完成棚贾,有興趣自己搭建websocket的話窖维,可以參考這篇技術(shù)分享《搭建websocket消息推送服務,必須要考慮的幾個問題

而GoEasy是一個成熟穩(wěn)定的websocket企業(yè)級PAAS服務平臺妙痹,開發(fā)人員不需要考慮websocket服務端的搭建铸史,只需要幾行代碼,就可以輕松實現(xiàn)客戶端與客戶端之間怯伊,服務器與客戶端之間的的websocket通信琳轿,不需要考慮性能,安全耿芹,高可用集群的問題崭篡。只需要全力專注于開發(fā)自己的業(yè)務功能就好了。

GoEasy已經(jīng)內(nèi)置websocket中必備的心跳猩系,斷網(wǎng)重連媚送,消息補發(fā)中燥,歷史消息和客戶端上下線提醒等特性寇甸,開發(fā)人員也不需要自己搭建websocket服務處理集群高可用,安全和性能問題。GoEasy已經(jīng)穩(wěn)定運行了5年拿霉,支持千萬級并發(fā)吟秩,成功支撐過很多知名企業(yè)的重要活動,安全性和可靠性都是久經(jīng)考驗绽淘。

2涵防、GoEasy在Uniapp開發(fā)中主要用在哪些場景呢?

首先從技術(shù)上說沪铭,Uniapp支持的所有技術(shù)android, iOS和小程序壮池,GoEasy都是完美支持的。

從應用場景上來說杀怠,所有需要websocket通信的場景椰憋,GoEasy都可以完美支持:

聊天,IM赔退,直播彈幕橙依,用戶上下線提醒, 在線用戶列表

掃碼點菜,掃碼登錄硕旗, 掃碼支付窗骑, 掃碼簽到, 掃碼打印

事件提醒漆枚,工單创译,訂單實時提醒

在線拍賣, 在線點餐浪读,在線選座 實時數(shù)據(jù)展示昔榴,實時監(jiān)控大屏, 金融實時行情顯示碘橘,設(shè)備監(jiān)控系統(tǒng)

實時位置跟蹤互订,外賣實時跟蹤,物流實時跟蹤

遠程畫板痘拆,遠程醫(yī)療仰禽,游戲,遠程在線授課

...

3纺蛆、GoEasy的文檔為什么這么簡單吐葵?簡單到我都不知道如何使用

簡單還不好嗎?GoEasy從研發(fā)的第一天桥氏,就把追求API的極簡作為我們的工作重點温峭。嚴格控制接口的數(shù)量,就是是為了降低開發(fā)人員的學習成本字支,其實就是為了讓您爽胺锊亍奸忽!但這并不影響GoEasy完美支持所有的websocket即時通訊需求。

今天小編就手把手的教您用GoEasy在Uniapp下揖庄,最短的時間實現(xiàn)一個的web即時通訊Demo栗菜。

image

本demo已經(jīng)通過小程序, iOS和Android的真機測試,完整源代碼已經(jīng)上傳github蹄梢,下載后疙筹,只需要將代碼里的appkey換成自己的common key,就可以體驗了禁炒。下載地址:

https://github.com/GoEasySupport/goeasy-uniapp-helloworld

1而咆、獲取appkey

GoEasy官網(wǎng)(http://www.goeasy.io/)上注冊賬號,創(chuàng)建一個應用幕袱,拿到您的appkey

image

GoEasy提供了兩種類型的appkey:

Common key: 即可以接收消息翘盖,也可以發(fā)送消息,與Subscriber Key最大的區(qū)別就是有寫權(quán)限凹蜂,可以發(fā)消息馍驯。適用于有消息發(fā)送需求的客戶端和服務端開發(fā)。

Subscriber key: 只能接收消息玛痊,不可以發(fā)送消息汰瘫,與Common Key最大的區(qū)別就是沒有寫權(quán)限,只能收消息擂煞』烀郑可以用于一些沒有發(fā)送需求的客戶端。

2对省、獲取GoEasy SDK

兩個方式:

DCloud Uniapp的插件市場下載:https://ext.dcloud.net.cn/plugin?id=1334

也可以直接在goeasy官網(wǎng)下載:https://www.goeasy.io/cn/doc/client/get-goeasy-js.html

3蝗拿、初始化GoEasy對象

在main.js中將goeasy初始化為Uniapp的全局對象,方便所有頁面都能方便的調(diào)用蒿涎,同時也避免多個頁面反復new GoEasy對象哀托。

根據(jù)您在GoEasy后臺創(chuàng)建應用時選擇的區(qū)域,來傳入不同的Host,如果您創(chuàng)建goeasy應用時,選擇了杭州劳秋,那么host:"hangzhou.goeasy.io"仓手。選擇了新加坡,host:"singapore.goeasy.io"。

如果您的大部分用戶都是在國內(nèi)玻淑,創(chuàng)建應用時嗽冒,記得選擇杭州,以便獲得更快的通訊速度补履。

// 在main.js中將goeasy初始化為全局對象添坊,所有頁面都能方便的調(diào)用,也避免多個頁面反復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('連接失敗或錯誤驰弄!')

    }

});

4、uniapp端接收消息

this.$goEasy.subscribe({

    channel: "my_channel", //替換為您自己的channel

    onMessage: function (message) {

        alert("Channel:" + message.channel + " content:" + message.content);

    }

});

很多朋友會問channel從哪里來速客,如何創(chuàng)建,應該傳入什么呢五鲫?

根據(jù)您的業(yè)務需求來設(shè)定溺职,channel可以為任意字符串,除了不能包含空格位喂,和不建議使用中文外浪耘,沒有任何限制,只需要和消息的發(fā)送端保持一致塑崖,就可以收到消息七冲。channel可以是您直播間的uuid,也可以是一個用戶的唯一表示符,可以任意定義规婆,channel不需要創(chuàng)建澜躺,可以隨用隨棄。

5抒蚜、uniapp端發(fā)送消息

發(fā)送時掘鄙,需要注意channel一定要和subscriber的channel完全一致,否則無法收到嗡髓。

this.$goEasy.publish({

    channel: "my_channel", //替換為您自己的channel

    message: "Hello, GoEasy!" //替換為您想要發(fā)送的消息內(nèi)容

});

本代碼源碼下載:

https://github.com/GoEasySupport/goeasy-uniapp-helloworld

小程序特別強調(diào):

若您需要打包為微信小程序操漠,需要在微信公眾號平臺配置socket合法域名,否則無法使用饿这。 具體步驟:

訪問https://mp.weixin.qq.com浊伙,進入微信公眾平臺|小程序 -> 設(shè)置 -> 開發(fā)設(shè)置 -> 服務器域名

socket合法域名-> 添加 goeasy的地址:wx-hangzhou.goeasy.io(記得wx-開頭)

若您創(chuàng)建GoEasy應用時選擇了新加坡區(qū)域則添加地址:wx-singapore.goeasy.io

答疑時間:

1、我的服務器端可以發(fā)送消息嗎长捧?都支持些哪些語言嚣鄙?

當然可以,任何語言都可以通過調(diào)用goeasy的Rest API發(fā)送消息串结,同時為了大家方便拗慨,GoEasy的官方文檔里,也準備了Java, C#,NodeJS奉芦,PHP赵抢,Ruby和Python等常見語言調(diào)用REST API的代碼,這里獲取更多詳情:https://www.goeasy.io/cn/doc/server/publish.html

2声功、GoEasy可以發(fā)送圖片烦却,語音和視頻嗎?

當然可以先巴,您可以通過推送文件路徑的方式來實現(xiàn)文件的發(fā)送其爵。

按照行業(yè)慣例冒冬,不論MSN,微信摩渺,QQ對于圖片和視頻简烤,通常的做法都是,只推送文件路徑摇幻,而不會推送文件本身横侦。你如果有注意的話,當您接受圖片和視頻的時候绰姻,收到消息后枉侧,等一會兒才能看,就是因為發(fā)送的時候狂芋,只發(fā)送了路徑榨馁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市帜矾,隨后出現(xiàn)的幾起案子翼虫,更是在濱河造成了極大的恐慌,老刑警劉巖屡萤,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛙讥,死亡現(xiàn)場離奇詭異,居然都是意外死亡灭衷,警方通過查閱死者的電腦和手機次慢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翔曲,“玉大人迫像,你說我怎么就攤上這事⊥椋” “怎么了闻妓?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長掠械。 經(jīng)常有香客問我由缆,道長,這世上最難降的妖魔是什么猾蒂? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任均唉,我火速辦了婚禮,結(jié)果婚禮上肚菠,老公的妹妹穿的比我還像新娘舔箭。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布层扶。 她就那樣靜靜地躺著箫章,像睡著了一般。 火紅的嫁衣襯著肌膚如雪镜会。 梳的紋絲不亂的頭發(fā)上檬寂,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音戳表,去河邊找鬼桶至。 笑死,一個胖子當著我的面吹牛扒袖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亩码,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼季率,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了描沟?” 一聲冷哼從身側(cè)響起飒泻,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吏廉,沒想到半個月后泞遗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡席覆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年史辙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佩伤。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡聊倔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出生巡,到底是詐尸還是另有隱情耙蔑,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布孤荣,位于F島的核電站甸陌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏盐股。R本人自食惡果不足惜钱豁,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疯汁。 院中可真熱鬧寥院,春花似錦、人聲如沸涛目。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至估蹄,卻和暖如春塑煎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背臭蚁。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工最铁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垮兑。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓皇忿,卻偏偏與公主長得像谴古,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-WebSo...
    敢夢敢當閱讀 8,907評論 0 50
  • WebSocket簡介 談到Web實時推送右犹,就不得不說WebSocket点楼。在WebSocket出現(xiàn)之前宠纯,很多網(wǎng)站為...
    吧啦啦小湯圓閱讀 8,144評論 15 75
  • 嗨斗躏,大家好! 我的名字是Sergey Kamardin,我是Mail.Ru的工程師衬浑。 介紹 首先介紹我們的故事的上...
    肆虐的悲傷閱讀 2,723評論 1 11
  • 水滸傳中有一百零八將捌浩,其中有三十六位天罡星,七十二座地煞星工秩,三十六位天罡星個性鮮明尸饺,每個都有自己的特點,而在此我們...
    樊4閱讀 951評論 0 3
  • 據(jù)報道助币,現(xiàn)在30歲左右的年輕人下班后都不會考慮工作上的事情侵佃,80%人會看手機、上網(wǎng)或看電視放空自己奠支。他們的理由也很...
    追光小強閱讀 189評論 0 0