我正在使用 redux-cycle 编写一个非常简单的应用程序,其中包含 3 个元素:
- 用于输入 url 的文本字段
- 连接到 websocket 端点的“连接”按钮
- 显示传入消息的输出面板
我已经根据这个答案编写了一个非常简单的 websocket 驱动程序https://stackoverflow.com/a/42926532/842860
连线代码是这样的:
const cycleMiddleware = createCycleMiddleware();
const {makeActionDriver} = cycleMiddleware;
function main(sources) {
return {
ACTION: sources.WEBSOCKET // The websocket driver emits commands which are consumed by reducers
}
}
const store = createStore(
reducer, // Update redux state
applyMiddleware(cycleMiddleware)
);
run(main, {
WEBSOCKET: WSDriver("ws://localhost:3000/something"), // The initial connection string
ACTION: makeActionDriver()
});
问题是如何在单击连接按钮时使 websocket 重新连接到另一个端点?我是否需要修改我的 websocket 驱动程序来捕获事件并重新连接,或者 cyclejs 是否提供了一种动态更新源/接收器的方法?