2012年2月23日

SocketManager的設計問題

現在的設計是:
QuoteProxy取得SocketManager,然後QuoteProxy要用SocketManager發送與取得資料。

SocketManager在資料出來這一端,有一些可能的途徑:
1. SocketManager單純就只是一個EventDispatcher,取得來自server的raw text後event dispatch出去。QuoteProxy (還有未來的AlertProxy,OrderReplyProxy等等)parse、update proxy,然後由 QuoteProxy 丟出 message。好處是SocketManager就可以放在基本功能類別讓大家Reference,這樣就不需要ISocketManager了。

2. SocketManager 要負責 Parse,根據 Parse 的結果,dispatch event 到正確的 proxy。但這樣SocketManager就必須要知道所有可能透過socket發生的channel,而且因為會被多個namespace reference到,所以需要ISocketManager

SocketManager在被驅動這一端,有一些可能的路徑:
1. 每個Proxy自己知道怎麼產生「socket訂閱字串」,直接呼叫SocketManager的send
2. Proxy產生Query,丟到SocketManager。SocketManager要知道怎麼處理每個query。

1配1,2配2。現在的想法是用2,結構上比較decoupled,但現在就要寫很多碼。

沒有留言:

張貼留言