我正在使用websockets来获取我正在创建的react-redux应用程序的数据,虽然我正在发送执行动作发送消息,如果没有连接到websocket,则保持数组中的消息然后当websocket connected(onopen
)我发送的所有消息的Date.now()
都不到10分钟。
这可以吗?或者是否有适当的方法来处理这种行为。
组件
componentDidMount() {
this.props.actions.getData()
}
套接字处理程序
let heldMessages = [];
/* ...Socket setup */
socket.onopen = () => {
if(heldMessages.length) {
heldMessages.forEach(msg => {
// In last 10 Minutes
if(msg.time > (Date.now() - 600000)) {
sendData(msg.data);
}
});
heldMessages = [];
}
}
/* ... misc functions */
function sendData(obj) {
if(connected) {
/* ...socket sending logic */
} else {
heldMessages.push({ time: Date.now(), data: obj });
}
}