Uniapp使用GoEasy實現websocket實時通訊

      網友投稿 1178 2022-05-30

      Uniapp作為近來最火的移動端開發技術,一套代碼,可以打包成Android/iOS app和各種平臺的小程序,可謂是沒有最方便只有更方便。

      GoEasy上架DCloud Uniapp插件市場已經有一個多月了,收到很多Uniapp開發人員的贊揚和好評,小編在此隔著屏幕向大家鞠躬,小編和GoEasy團隊會繼續努力,持續為Uniapp開發者提供最簡單且優雅的API,穩定高速可靠的即時通訊服務。

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

      1、GoEasy和Uniapp websocket API有什么區別和優勢?

      Uniapp官方的websocket API主要是用來與您的websocket服務通訊,所以使用Uniapp websocket的前提是,首先要搭建好您自己的websocket服務,然后與之通訊。這是一個純技術的API,在建立網絡連接后,還有很多的工作需要自己來完成,比如:

      需要自己實現心跳機制,來維護網絡連接,來判斷客戶端的網絡連接狀態;

      需要自己實現斷網自動重連;

      需要自己維護消息列表,確保遇到斷網重連后,消息能夠補發;

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

      ...

      等等很多細致而繁雜的工作,比如websocket的安全機制和性能優化;

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

      而GoEasy是一個成熟穩定的websocket企業級PAAS服務平臺,開發人員不需要考慮websocket服務端的搭建,只需要幾行代碼,就可以輕松實現客戶端與客戶端之間,服務器與客戶端之間的的websocket通信,不需要考慮性能,安全,高可用集群的問題。只需要全力專注于開發自己的業務功能就好了。

      GoEasy已經內置websocket中必備的心跳,斷網重連,消息補發,歷史消息和客戶端上下線提醒等特性,開發人員也不需要自己搭建websocket服務處理集群高可用,安全和性能問題。GoEasy已經穩定運行了5年,支持千萬級并發,成功支撐過很多知名企業的重要活動,安全性和可靠性都是久經考驗。

      2、GoEasy在Uniapp開發中主要用在哪些場景呢?

      首先從技術上說,Uniapp支持的所有技術android, iOS和小程序,GoEasy都是完美支持的。

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

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

      掃碼點菜,掃碼登錄, 掃碼支付, 掃碼簽到, 掃碼打印

      事件提醒,工單,訂單實時提醒

      在線拍賣, 在線點餐,在線選座 實時數據展示,實時監控大屏, 金融實時行情顯示,設備監控系統

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

      遠程畫板,遠程醫療,游戲,遠程在線授課

      ...

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

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

      今天小編就手把手的教您用GoEasy在Uniapp下,最短的時間實現一個的web即時通訊Demo。

      本demo已經通過小程序, iOS和Android的真機測試,完整源代碼已經上傳github,下載后,只需要將代碼里的appkey換成自己的common key,就可以體驗了。-:https://github.com/GoEasySupport/goeasy-uniapp-helloworld

      1、獲取appkey

      GoEasy官網上注冊賬號,創建一個應用,拿到您的appkey。

      GoEasy提供了兩種類型的appkey:

      Common key: 即可以接收消息,也可以發送消息,與Subscriber Key最大的區別就是有寫權限,可以發消息。適用于有消息發送需求的客戶端和服務端開發。

      Subscriber key: 只能接收消息,不可以發送消息,與Common Key最大的區別就是沒有寫權限,只能收消息??梢杂糜谝恍]有發送需求的客戶端。

      2、獲取GoEasy SDK

      兩個方式:

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

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

      3、初始化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使用GoEasy實現websocket實時通訊

      4、uniapp端接收消息

      this.$goEasy.subscribe({ ????channel:?"my_channel",?//替換為您自己的channel ????onMessage:?function?(message)?{ ????????alert("Channel:"?+?message.channel?+?"?content:"?+?message.content); ????} });

      很多朋友會問channel從哪里來,如何創建,應該傳入什么呢?

      根據您的業務需求來設定,channel可以為任意字符串,除了不能包含空格,和不建議使用中文外,沒有任何限制,只需要和消息的發送端保持一致,就可以收到消息。channel可以是您直播間的uuid,也可以是一個用戶的唯一表示符,可以任意定義,channel不需要創建,可以隨用隨棄。

      5、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

      答疑時間:

      1、我的服務器端可以發送消息嗎?都支持些哪些語言?

      當然可以,任何語言都可以通過調用goeasy的Rest API發送消息,同時為了大家方便,GoEasy的官方文檔里,也準備了Java, C#,NodeJS,PHP,Ruby和Python等常見語言調用REST API的代碼,這里獲取更多詳情:

      2、GoEasy可以發送圖片,語音和視頻嗎?

      當然可以,您可以通過推送文件路徑的方式來實現文件的發送。

      按照行業慣例,不論MSN,微信,QQ對于圖片和視頻,通常的做法都是,只推送文件路徑,而不會推送文件本身。你如果有注意的話,當您接受圖片和視頻的時候,收到消息后,等一會兒才能看,就是因為發送的時候,只發送了路徑。

      小程序 websocket

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:從簡單SQL轉換理解Antlr4訪問者模式技術細節
      下一篇:《深度學習:主流框架和編程實戰》——2.1.2 TensorFlow中的模型
      相關文章
      亚洲欧洲日产国产最新| 麻豆亚洲av熟女国产一区二| 亚洲一级片在线观看| 精品亚洲aⅴ在线观看| 久久久无码精品亚洲日韩蜜桃| 国产亚洲无线码一区二区| 久久精品国产精品亚洲人人| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 亚洲综合精品第一页| 亚洲粉嫩美白在线| 国产亚洲玖玖玖在线观看| 亚洲欧洲日韩极速播放| 久久亚洲国产最新网站| 亚洲欧洲精品成人久久曰| 亚洲欧美日韩综合俺去了| 丰满亚洲大尺度无码无码专线 | 亚洲色少妇熟女11p| 亚洲色偷偷偷综合网| 日本亚洲欧美色视频在线播放 | 最新亚洲人成网站在线观看| 一区二区三区亚洲视频| 亚洲人妻av伦理| 亚洲日产无码中文字幕| 亚洲AV永久青草无码精品| 亚洲今日精彩视频| 亚洲精品在线免费观看| 亚洲一区二区三区免费观看| 色天使亚洲综合在线观看| 色五月五月丁香亚洲综合网| 亚洲精品成人在线| 亚洲人精品午夜射精日韩| 亚洲AV福利天堂一区二区三 | 亚洲黄黄黄网站在线观看| 中文字幕亚洲乱码熟女一区二区| 久久精品国产亚洲网站| 麻豆亚洲av熟女国产一区二| 国产日本亚洲一区二区三区| 亚洲成av人片在www鸭子| AV在线播放日韩亚洲欧| 久久综合日韩亚洲精品色| 亚洲视频一区二区三区|