2016-06-28 138 views
1

我想在我的redux應用中使用websockets,並且在存儲連接對象(phoenix channels)時遇到問題。在Redux中存儲websocket(通道)連接對象

我有一個動態集合,可以添加和刪除項目。當用戶添加一個項目時,應用程序應該創建一個基於連接,訂閱和存儲的新鳳凰頻道,因爲我必須在其上做一些事情(例如,當用戶移除項目時,我必須在頻道上調用方法leave())。不幸的是,在redux中存儲都是不可變的,所以沒有辦法處理這個問題。任何幫助,將不勝感激。

回答

1

絕對不要把它放在商店。根據http://redux.js.org/docs/FAQ.html#organizing-state-non-serializable,只有可序列化的數據應該進入商店。將諸如持久連接對象這樣的標準位置放在中間件內部。事實上,現在有幾十個現有的中間件可以證明這種方法,其中大多數都以https://github.com/markerikson/redux-ecosystem-links/blob/master/middleware.md#sockets-and-adapters列出。你應該能夠使用其中的一些作爲例子。