Pushlet:一個開源的 Comet 框架
Pushlet是通過改進http://www.pushlets.com/一個開源的Comet 框架,添加支持多字符集和通過redis做后端數據庫來做集群. Pushlet 使用了觀察者模型:客戶端發送請求,訂閱感興趣的事件;服務器端為每個客戶端分配一個會話 ID 作為標記, 事件源會把新產生的事件以多播的方式發送到訂閱者的事件隊列里。Redis分支的數據模型: ZSET: "p:zset:as" //存放所有的session;score是一個時間戳,value是sessionid "p:zset:sj:"+oneSubject //score是一個時間戳,value是sessionid;目的是能從一個oneSubject里獲取到所有的session. HASH: "p:sr:"+sessionid //field是Subscriber對象的屬性名, value是Subscriber對象的屬性值 "p:sc:"+sessionid //field是Subscription對象的Subject屬性, value是Subscription對象 "p:sj:"+oneSubject //field是sessionid, value是Subscription對象的Subject屬性;目的是能快速匹配到一個Subscription對象 "p:ss:"+sessionid //field是Session對象的屬性名, value是Session對象的屬性值 LIST: "p:eq:"+sessionid //存放Event對象</pre>
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!