Java Web 服務(wù)器的消息推送的幾種方案有:輪詢、長連接、DWR和HTTP2協(xié)議,有以下兩種方法。
在成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站過程中,需要針對客戶的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。創(chuàng)新互聯(lián)還需要根據(jù)客戶的需求進(jìn)行功能模塊的開發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。
一種,自己搭推送服務(wù)器,一般主流使用XMPP協(xié)議,也有相對成熟的框架和開源項(xiàng)目給你使用。。優(yōu)點(diǎn)是可以自由控制因?yàn)榇a都是自己寫的,缺點(diǎn)是搭建難度大,要吃透很花時間,而且心跳包的控制和終端的電量消耗都需要一定的水平
另外一種是用第三方推送,比如極光推送,個推等,優(yōu)點(diǎn)是簡單易用,不用考慮服務(wù)端的實(shí)現(xiàn),然后有相對完整的文檔,寫幾段java代碼就好,對于中小公司等開發(fā)資源少的公司,極光推送是經(jīng)過考驗(yàn)的大規(guī)模 App 推送平臺,每天推送消息量級為數(shù)百億條,能確保消息送達(dá)率
幾種常見的解決方案實(shí)現(xiàn)原理
1)輪詢(Pull)方式:客戶端定時向服務(wù)器發(fā)送詢問消息,一旦服務(wù)器有變化則立即同步消息。
2)SMS(Push)方式:通過攔截SMS消息并且解析消息內(nèi)容來了解服務(wù)器的命令,但這種方式一般用戶在經(jīng)濟(jì)上很難承受。
3)持久連接(Push)方式:客戶端和服務(wù)器之間建立長久連接,這樣就可以實(shí)現(xiàn)消息的及時行和實(shí)時性。
3、消息推送解決方案概述
A、C2DM云端推送方案
在Android手機(jī)平臺上,Google提供了C2DM(Cloudto Device Messaging)服務(wù)。Android
Cloud to Device Messaging (C2DM)是一個用來幫助開發(fā)者從服務(wù)器向Android應(yīng)用程序發(fā)送數(shù)據(jù)的服務(wù)。該服務(wù)提供了一個簡單的、輕量級的機(jī)制,允許服務(wù)器可以通知移動應(yīng)用程序直接與服務(wù)器進(jìn)行通信,以便于從服務(wù)器獲取應(yīng)用程序更新和用戶數(shù)據(jù)。
該方案存在的主要問題是C2DM需要依賴于Google官方提供的C2DM服務(wù)器,由于國內(nèi)的網(wǎng)絡(luò)環(huán)境,這個服務(wù)經(jīng)常不可用。
B、MQTT協(xié)議實(shí)現(xiàn)Android推送
采用MQTT協(xié)議實(shí)現(xiàn)Android推送功能也是一種解決方案。MQTT是一個輕量級的消息發(fā)布/訂閱協(xié)議,它是實(shí)現(xiàn)基于手機(jī)客戶端的消息推送服務(wù)器的理想解決方案。
wmqtt.jar
是IBM提供的MQTT協(xié)議的實(shí)現(xiàn)。我們可以從這里()下載該項(xiàng)目的實(shí)例代碼,并且可以找到一個采用PHP書寫的服務(wù)器端實(shí)現(xiàn)()。
C、RSMB實(shí)現(xiàn)推送功能
Really Small Message Broker (RSMB)
,是一個簡單的MQTT代理,同樣由IBM提供,其查看地址是:。缺省打開1883端口,應(yīng)用程序當(dāng)中,它負(fù)責(zé)接收來自服務(wù)器的消息并將其轉(zhuǎn)發(fā)給指定的移動設(shè)備。SAM是一個針對MQTT寫的PHP庫。我們可以從這個地址下載它.
D、XMPP協(xié)議實(shí)現(xiàn)Android推送
Google官方的C2DM服務(wù)器底層也是采用XMPP協(xié)議進(jìn)行的封裝。XMPP(可擴(kuò)展通訊和表示協(xié)議)是基于可擴(kuò)展標(biāo)記語言(XML)的協(xié)議,它用于即時消息(IM)以及在線探測。這個協(xié)議可能最終允許因特網(wǎng)用戶向因特網(wǎng)上的其他任何人發(fā)送即時消息。
androidpn是一個基于XMPP協(xié)議的java開源Android push notification實(shí)現(xiàn)。它包含了完整的客戶端和服務(wù)器端。但也存在一些不足之處:
1)
比如時間過長時,就再也收不到推送的信息了。
2)性能上也不夠穩(wěn)定。
3)如果將消息從服務(wù)器上推送出去,就不再管理了,不管消息是否成功到達(dá)客戶端手機(jī)上。
如果我們要使用androidpn,則還需要做大量的工作,需要理解XMPP協(xié)議、理解Androidpn的實(shí)現(xiàn)機(jī)制,需要調(diào)試內(nèi)部存在的BUG。
java消息推送websocket實(shí)現(xiàn)原理:在實(shí)現(xiàn)websocket連線過程中,需要通過瀏覽器發(fā)出websocket連線請求,然后服務(wù)器發(fā)出回應(yīng),這個過程通常稱為“握手” 。在 WebSocket API,瀏覽器和服務(wù)器只需要做一個握手的動作,然后,瀏覽器和服務(wù)器之間就形成了一條快速通道。兩者之間就直接可以數(shù)據(jù)互相傳送。
在以前的消息推送機(jī)制中,用的都是 Ajax 輪詢(polling),在特定的時間間隔由瀏覽器自動發(fā)出請求,將服務(wù)器的消息主動的拉回來,這種方式是非常消耗資源的,因?yàn)楸举|(zhì)還是http請求,而且顯得非常笨拙。而WebSocket 在瀏覽器和服務(wù)器完成一個握手的動作,在建立連接之后,服務(wù)器可以主動傳送數(shù)據(jù)給客戶端,客戶端也可以隨時向服務(wù)器發(fā)送數(shù)據(jù)。
WebSocket協(xié)議是基于TCP的一種新的網(wǎng)絡(luò)協(xié)議。實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工(full-duplex)通信——允許服務(wù)器主動發(fā)送信息給客戶端。也可以選擇第三方推送平臺來實(shí)現(xiàn),比如極光推送就不錯。
Java服務(wù)器推送消息給前端主要方法:
Java有兩個接口:
1、"/subscribe"接口:用于消息訂閱,該接口有一個參數(shù)topic,即訂閱的消息主題。
2、"/publish"接口:發(fā)布消息接口,有兩個參數(shù),topic是發(fā)布消息主題,content是發(fā)布消息內(nèi)容。
用戶還可考慮使用用極光推送,JPush 提供四種消息形式:通知,自定義消息,富媒體和本地通知。
1、通知,或者說 Push Notification,即指在手機(jī)的通知欄(狀態(tài)欄)上會顯示的一條通知信息。 通知主要用來達(dá)到提示用戶的目的,應(yīng)用于新聞內(nèi)容、促銷活動、產(chǎn)品信息、版本更新提醒、訂單狀態(tài)提醒等多種場景;
2、自定義消息:自定義消息不是通知,所以不會被 SDK 展示到通知欄上。其內(nèi)容完全由開發(fā)者自己定義。 自定義消息主要用于應(yīng)用的內(nèi)部業(yè)務(wù)邏輯。一條自定義消息推送過來,有可能沒有任何界面顯示。
3、富媒體:JPush 支持開發(fā)者發(fā)送圖文并茂的通知,從而更好的傳達(dá)信息,帶來更豐富的用戶互動。 JPush 提供了 5 種模板,開發(fā)者可以通過填充模板的內(nèi)容,發(fā)送 landing page、彈窗、信息流形式的富媒體通知。 開發(fā)者還可以直接通過 URL 發(fā)送預(yù)先編輯好的頁面。
4、本地通知:本地通知 API 不依賴于網(wǎng)絡(luò),無網(wǎng)條件下依舊可以觸發(fā);本地通知的定時時間是自發(fā)送時算起的,不受中間關(guān)機(jī)等操作的影響。 本地通知與網(wǎng)絡(luò)推送的通知是相互獨(dú)立的,不受保留最近通知條數(shù)上限的限制。
極光推送還可以通過使用標(biāo)簽,別名,Registration ID 和用戶分群,開發(fā)者可以向特定的一個或多個用戶推送消息。
Java Web 服務(wù)器的消息推送有以下幾種方案:
1. 輪詢:前端使用ajax不停的發(fā)起請求獲取想要的數(shù)據(jù)(最簡單也是最容易耗盡服務(wù)器資源)。
2. 長連接:HTTP長連接,客戶端向服務(wù)端發(fā)起請求,服務(wù)端等有數(shù)據(jù)了才response,否則一直持有該連接Cometgithub: comet4j 項(xiàng)目,可以直接下載配置jar到tomcat下使用。
3、使用xmpp協(xié)議的一種技術(shù),能夠做到j(luò)s中調(diào)用服務(wù)器的Java方法。
消息推送建議用專業(yè)的推送平臺,例如:極光。深圳市和訊華谷信息技術(shù)有限公司創(chuàng)立于2011年,其團(tuán)隊(duì)核心成員來自騰訊、摩根士丹利、豆瓣、Teradata和中國移動等公司。公司總部位于深圳,在北京、上海、廣州、成都均設(shè)有辦公室。
分享標(biāo)題:java服務(wù)器推送代碼,java實(shí)現(xiàn)數(shù)據(jù)推送
新聞來源:http://jinyejixie.com/article38/hojipp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、云服務(wù)器、網(wǎng)站收錄、外貿(mào)建站、網(wǎng)站導(dǎo)航、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)