我正在使用 redux-thunk 并开始看到一些限制。
假设我有 action PUSHER_CONNECT
, PUSHER_CONNECTED
, PUSHER_DISCONNECTED
, PUSHER_LISTEN_TO_CHANNEL
,PUSHER_MESSAGE_RECEIVED
等。状态会有一些简单的东西来指示连接状态。
{ connection: 'connected' } // OR
{ connection: 'disconnected' }
我怎样才能真正在这 2: 之间来回穿梭PUSHER_CONNECTED
,PUSHER_DISCONNECTED
因为推送连接仍然存在于某个地方。我正在考虑将 pusher 对象和相关对象保持在状态,如果是PUSHER_DISCONNECTED
,请将它们设置为null
. 但不能保证这些对象是不可变的。
另一个想法是,我会添加一个检查PUSHER_MESSAGE_RECEIVED
: if state.connection !== 'connected'
then don't push the new message... 模拟这是一个“真正的”断开连接。同样,添加一个检查PUSHER_CONNECT
,如果 pusher 对象存在并且已连接,则不要重新连接,只需将状态更改为{connection: 'connecting'}
你会如何处理这个问题?