reactjs - 带有 Socket io 的 Redux 中间件
问题描述
刚刚尝试使用 react JS、redux 和 socketIO 创建一个简单的聊天应用程序。经过一段时间的探索,我发现最好有一个Redux 中间件,这样我就可以管理套接字连接和数据。经过一番研究,我想出了以下解决方案
socketMiddleware.js
import socketIOClient from "socket.io-client";
//This acts as middleware for all store actions.
const socketMiddleware = () => {
console.log("MIDDDLEWARE")
let webSocket = null;
// the middleware part of this function
return store => next => action => {
switch (action.type) {
case 'WS_CONNECT':
webSocket = socketIOClient(action.host);
webSocket.on("connection_success", data => {
console.log("ON Connect : ",data);
})
webSocket.on("new_message", messageData => {
console.log("NEW MESSAGE : ",messageData)
})
case "SEND_MESSAGE":
webSocket.emit("received_new_message", action.payload)
console.log('Message Send');
}
return next(action);
};
};
export default socketMiddleware();
这按预期工作,但我的问题是,有没有比这更好的解决方案(当然。应该有)?
解决方案
推荐阅读
- r - GME 的“isectpolyrst”的 R 脚本是什么?
- java - 如何从Java中的路径获取目录名称?
- django - 使用终端界面自定义 django 管理页面
- javascript - 如何让 Google 表格绑定的 code.js 从未包含的远程 .js 文件中读取和操作 JavaScript?
- windows - 是否有任何可能的方式为非管理员用户提供所有服务(Windows 和第 3 方)访问权限?
- python - Glob 只返回文件夹中的第一个文件
- tmux - 如何移动 Tmux 窗格
- parentheses - 如何修复第 4 行中发生的“预期右括号”:winbugs 中的 tau0*(t[j+1]-t[j])
- python - 如何修复“-_tkinter.TclError:绑定中未指定事件”
- scala - Grpc并行Stream通信导致错误:AkkaNettyGrpcClientGraphStage