Javascript EventBus(事件總線)模擬socket.io中事件處理
socket.io客戶端對事件處理相當優(yōu)雅,和weboscket的有限的javascript接口差不多一致好看,但可以支持更多的自定義事件:
使用了EventBus(事件總線)方式可以很好的處理事件訂閱者/事件的發(fā)布者解耦,發(fā)布者不知道訂閱者,訂閱者只需要自身注冊,等待通知便可。EventBus是一種簡單,高效,優(yōu)雅,良好的客戶端架構方式。嗯,還好,javascritp本身支持函數(shù)作為參數(shù)進行傳遞,要不還是很麻煩的。
構建一個最簡單的EventBus javascript庫,也不難:
簡單不到40行代碼,提供了事件訂閱,事件取消,事件廣播/發(fā)布等,雖簡單,但已經(jīng)滿足最簡單的頁面端EventBus模型,可以一窺全貌了。
客戶端使用事件總線代碼:
看著和socket.io的客戶端使用方式有所類似,但socket.io的處理方式復雜多了,并且多了一些內(nèi)置的事件,這里不過是簡化了很多。
嗯,有空談一談JAVA是如何做到事件總線(EventBus)的。
posted on 2012-08-24 23:04 nieyong 閱讀(3408) 評論(0) 編輯 收藏 所屬分類: socket.io