我正在使用 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'}
你会如何处理这个问题?