我正在尝试实现基于套接字的react(redux)应用程序。必须将套接字事件分派到商店,以便减速器对其进行操作。 现在我的想法是将存储保存在一个文件中并从Socket事件文件中引用它,并且每当收到套接字消息然后通过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>
这里我没有使用任何中间件。这是一种正确的方法。
答案 0 :(得分:0)
不,你没有拥有来使用中间件,但是中间件是正确的来放置这种行为。事实上,已经有many existing websocket middlewares you can use。