我正在试图弄清楚如何在我的react / redux应用程序旁边使用socket.io,并了解在执行此操作时我可以优化多少。所以,在服务器上我有一个非常基本的设置,你可以在这里看到套接字:
store.subscribe(() => {
io.emit('state', store.getState().toJS());
});
io.on('connection', (socket) => {
socket.emit('state', store.getState().toJS());
socket.on('action', function (action) {
action.headers = socket.request.headers;
store.dispatch(action);
});
});
所以唯一与众不同的是我只是将请求标头粘贴到稍后使用的操作上。我想尝试和实现的是这样的 -
io.connections[i].emit('state')
并添加
socket.on('state', (action) => {
socket.emit('state', getUserSpecificState(store));
});
这个想法是允许我遍历所有连接,然后使用该连接的套接字来调用特定用户。我不知道这样的事情是否可行,我正在寻找一些可能的反馈来处理回发用户特定信息。仅发回由动作(而不是整个状态)改变的状态部分也是很酷的,然后让前端存储组装状态。任何/所有输入都非常受欢迎,谢谢!
答案 0 :(得分:1)
看起来处理这个逻辑不是redux的问题,你把它放在一些模块中并使用中间件连接到状态或者只是通过“从外部”使用状态对象。说到州管理,你想要实施什么?看起来像某些CRDT的情况,如swarm.js或diffsync。