新聞中心
??隨著面向web的網(wǎng)頁的普及,如今的web開發(fā)者擁有越來越多的輪詢技術(shù)可供選擇。而隨著Redis的技術(shù)不斷發(fā)展,在維護(hù)web服務(wù)的輪詢時(shí),使用Redis來完成輪詢也越來越多見。

??輪詢是一種常用的后端設(shè)計(jì)技術(shù),是客戶端和服務(wù)器之間進(jìn)行數(shù)據(jù)交換的最簡單方式。它可以實(shí)現(xiàn)客戶端套接字,從服務(wù)器中定期獲取更新,以查看后臺是否有任何新變化,用于實(shí)時(shí)發(fā)布。
??Redis可以用作輪詢服務(wù)的后端,既可以完成服務(wù)端輪詢?nèi)蝿?wù),也可以實(shí)現(xiàn)客戶端輪詢?nèi)蝿?wù),從而提供服務(wù)端推送或?qū)崟r(shí)狀態(tài)更新的完美支持。
??在web環(huán)境中,使用Redis的輪詢技術(shù),主要基于訂閱發(fā)布(pub/sub)機(jī)制, developer 可以部署基于訂閱發(fā)布的通信服務(wù)來完成輪詢?nèi)蝿?wù)。下面我們從服務(wù)端了解如何實(shí)現(xiàn)基于Redis的輪詢。
//服務(wù)端
//首先將訂閱建立起來
sub = Redis.subscribe('new_event')
sub.subscribe do|on|
# 此處定義訂閱收到的消息時(shí)的響應(yīng)動(dòng)作
on.message do |chan, msg|
#將某個(gè)事件的消息發(fā)送給客戶端
send_message to :client_subscriber, msg
end
end
??服務(wù)端采用Redis的sub監(jiān)聽器,將訂閱的信息發(fā)送到用戶端,這樣,用戶端就能當(dāng)需要的時(shí)候接受到消息,而不是定期發(fā)請求拉取消息。
//客戶端
# 連接訂閱服務(wù)器
sub = Redis.subscribe('new_event')
# 增加一個(gè)句柄進(jìn)行處理服務(wù)器返回的消息
sub.subscribe do |on|
# 接受到消息時(shí)進(jìn)行處理
on.message do |chan, msg|
#處理消息
end
end
# 等待服務(wù)器推送的消息
sub.poll
??客戶端只需要把sub這個(gè)訂閱發(fā)布建立起來,再循環(huán)調(diào)用sub.poll方法來獲取實(shí)時(shí)的消息,就可以實(shí)現(xiàn)客戶端通過Redis做輪詢?nèi)蝿?wù)了。
??基于pub/sub機(jī)制,使用Redis來完成輪詢?nèi)蝿?wù)具有很高的可靠性,并且可以大大提高web程序的性能,完善請求輪次、處理效率和后端高可用控制。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享名稱:構(gòu)建Web后端使用Redis進(jìn)行輪詢(web輪訓(xùn)redis)
網(wǎng)頁鏈接:http://fisionsoft.com.cn/article/djpcgjg.html


咨詢
建站咨詢
