【发布时间】:2018-02-28 19:50:38
【问题描述】:
我正在尝试实现基于套接字的 react(redux) 应用程序。必须将套接字事件分派到商店,以便减速器对其采取行动。 现在我认为的方式是将存储保存在一个文件中并从 Socket events File 中引用该文件,并且每当收到套接字消息时,都会发出一个事件以通过 socket.dispatch 进行存储
在 store.js 中
import { createStore } from 'redux';
let store = createStore(appStore);
export default store
在 SocketJs 文件中
import store from './store';
import io from socketio.client;
let Socket = {
createSocketIoConnection = function(){
var socket = io(url, {reconnection: false, transports: ['websocket']});
socket.on('data', this.emitToStore);
},
emitToStore: function(data){
store.dispatch();
}
}
在作为道具传递给提供者的主文件广告中使用相同的商店
import store from './store';
<Provider store={store}>
<App> ...
</Provider>
这里我没有使用任何中间件。这是一个正确的方法吗?
【问题讨论】:
-
看起来不错,但架构决策没有单一的答案。
标签: reactjs sockets websocket redux react-redux