日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SSM项目使用GoEasy 实现web消息推送服务

發布時間:2025/3/19 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SSM项目使用GoEasy 实现web消息推送服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

一、背景

  之前項目需要做一個推送功能,最開始我用websocket實現我的功能。使用websocket的好處是免費自主開發,但是有幾個問題:1)瀏覽器的兼容問題,尤其是低版本的ie2)因為是推送,相當于從服務器到瀏覽器維護了一個通道,會占據你的服務器性能3)上手周期比較長,即使上手,代碼的穩定性也不高,維護也麻煩。因為這樣,所以項目中有關推送的代碼我都不管輕易改動。

  后來又有個web項目也需要推送,鑒于以上原因,我使用第三方的推送服務,原因很簡單,第三方推送服務可以滿足我們的需求,縮短我們的開發測試維護成本,術業有專攻,它們在推送方面更有優勢,服務質量也有保證!經過對比后,我們最終決定使用了GoEasy推送。

  GoEasy是一款強大易用的websocket消息推送服務,web,移動端都可以進行推送這是個收費的產品,當然提供12個月免費試用期,針對不同的并發數量和消息發送條數都有價格明細。它有如下幾個優點。1)完美支持99.9%的瀏覽器,即使非常古老的IE6IE7IE82)任何開發語言PHP C# Java Ruby Python C(++) node.js ... 3)它在全球有56個數據中心,保證推送的實時可達性,實時高效;4)獨創的OTP技術+Https提高消息安全隱私;5)穩定可靠,簡單易用。6)不但支持從服務端到客戶端的推送,還支持從客戶端到客戶端的推送。更多資料可以去官網http://goeasy.io了解。

?

二、原理

  只需要確定哪些用戶需要接收信息,然后讓這些用戶都訂閱一個相同的channel(頻道)。然后再往這個頻道上推送消息即可!所有關鍵在于channelchannel一致,則可以接收到信息,否則收不到!

  對于訂閱必須要的信息有:appkey, channel

  對于推送必須要的信息有:appkey, channel, content

?

三、步驟

1、注冊賬號

官網地址:http://goeasy.io

2、創建應用

應用分免費的和收費(免費版最多只能創建2個應用)我這里用的是免費版。創建完應用之后如下圖。

其中。appkey是驗證用戶的有效性的唯一標識。系統會生成兩個keys,一個Super key和一個Subscribe key;它們的區別在于前者既可以訂閱又可以推送,但后者只能用于訂閱。

3、前端js代碼

1 <script type="text/javascript" src="http(s)://<CDN?Host>/goeasy.js"></script> 2 <script type="text/javascript"> 3 var goEasy = new GoEasy({ 4 appkey: "您的app key", 5 onConnected: function () { 6 console.log("成功連接GoEasy!"); 7 }, 8 onDisconnected: function () { 9 console.log("與GoEasy連接斷開!"); 10 }, 11 onConnectFailed: function (error) { 12 console.log("與GoEasy連接失敗,錯誤編碼:" + error.code + "錯誤信息: " + error.content); 13 } 14 }); 15 goEasy.subscribe({ 16 channel:"myChannel", 17 onMessage:function(message){ 18 alert(message.content); 19 } 20 }); 21 </script>

?

注意:

1)請不要將goeasy.js下載到本地,GoEasy動態為不同瀏覽器和操作系統提供不同goeasy.js,使用下載到本地的goeasy.js,將會導致某些用戶不能發送和接收消息。

2)第一行代碼的http(s)表示可以用http協議,也可以使用https協議,一般情況下使用http就可以了,http速度快,性能更高。

2)上面代碼中<CDN?Host>需要用您應用的CDN Host,如圖1,比如你的CDN Hostcdn-hangzhou.goeasy.io

那么上面第一行代碼為:<script type="text/javascript" src="http://cdn-hangzhou.goeasy.io/goeasy.js"></script>

?

4pom.xml文件中加入GoEasy專有maven

1 <repositories> 2 <repository> 3 <id>goeasy</id> 4 <name>goeasy</name> 5 <url>http://maven.goeasy.io/content/repositories/releases/ 6 </url> 7 </repository> 8 </repositories> 9 10 <!--添加依賴--> 11 <dependencies> 12 13 <dependency> 14 <groupId>io.goeasy</groupId> 15 <artifactId>goeasy-sdk</artifactId> 16 <version>0.3.8</version> 17 <dependency> 18 19 <dependencies>

?

5、java代碼

1 GoEasy goEasy = new GoEasy( "http(s)://<REST Host>”, "my_appkey"); 2 goEasy.publish("頻道","消息內容"); 3 4 //比如我使用http協議,我的應用的REST Host為rest-hangzhou.goeasy.io,那么上面代碼就是這樣的 5 6 GoEasy goEasy = new GoEasy("http://rest-hangzhou.goeasy.io", "AF-aaaaaa0dddddd5cccccc2d113f444444"); 7 goEasy.publish("myChannel","測試");

如果想實現精準推送,給不同的用戶推送不同的消息,在頁面獲取當前登錄人id,在后臺發布頻道時就把id作為頻道名即可。

?

四、其他

RestAPI進行推送

URL: https://goeasy.io/goeasy/publish

Method: Post

參數:appkey, channel, content

例如:https://goeasy.io/goeasy/publish?appkey={your_appkey}&channel={your_channel}&content={your_message}

?

?

?

轉載于:https://www.cnblogs.com/DDgougou/p/9008520.html

總結

以上是生活随笔為你收集整理的SSM项目使用GoEasy 实现web消息推送服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。