Redux 添加 websocket 作为 prop
Posted
技术标签:
【中文标题】Redux 添加 websocket 作为 prop【英文标题】:Redux add websocket as prop 【发布时间】:2017-11-14 07:38:17 【问题描述】:我已经用需要的单个websocket
连接对应用程序做出反应,所以我从redux 操作连接websocket
并尝试将websocket
实例设置为prop;所以我可以在我的应用程序中访问这个实例
const initWebSocket = uri =>
const ws = new WebSocket(uri)
return
type: WEB_SOCKET_CONNECTION_SUCCESS,
ws
// reducer
export default function (state = initialState, action)
switch (action.type)
case WEB_SOCKET_CONNECTION_SUCCESS:
return ...state, ws: action.ws
default:
return state;
但是 aster 状态变化 ws
是空对象
【问题讨论】:
我是否建议不要保留 websocket 实例,而是添加 SEND_MESSAGE、ON_RECIEVE_MSG 和 CLOSE_WEBSOKET 作为 redux 操作? 【参考方案1】:从技术上讲,将 Websocket 连接实例放入 Redux 存储中是可行的,但这是个坏主意。 Redux 文档discourage putting anything that's not serializable in the Redux store。
在 Redux 应用程序中,Websocket 和其他持久连接对象的正确位置是在中间件内部。事实上,已经有dozens of existing middleware for managing Websocket connections 可用了。
【讨论】:
以上是关于Redux 添加 websocket 作为 prop的主要内容,如果未能解决你的问题,请参考以下文章
Redux+Websockets:为啥要使用中间件来管理这个?