Javascript 如何使用socket.io将整个状态json数据从服务器发送到react客户端?
基本上,下面这段代码就是我在客户端上为时间戳设置状态的代码,但我想在这里设置所有json数据Javascript 如何使用socket.io将整个状态json数据从服务器发送到react客户端?,javascript,json,node.js,reactjs,socket.io,Javascript,Json,Node.js,Reactjs,Socket.io,基本上,下面这段代码就是我在客户端上为时间戳设置状态的代码,但我想在这里设置所有json数据 constructor(props) { super(props); subscribeToTimer((err, timestamp) => this.setState({ timestamp })); } 这就是我在api组件中所做的,请注意,我希望首先将来自服务器的json数据放在这里 import openSocket from 'socket.io-c
constructor(props) {
super(props);
subscribeToTimer((err, timestamp) => this.setState({
timestamp
}));
}
这就是我在api组件中所做的,请注意,我希望首先将来自服务器的json数据放在这里
import openSocket from 'socket.io-client';
const socket = openSocket('http://localhost:8000');
function subscribeToTimer(cb) {
socket.on('timer', timestamp => cb(null, timestamp));
//socket.on(wooOrderId = > )
socket.emit('subscribeToTimer', 1000);
}
export { subscribeToTimer };
下面是我的时间戳服务器代码,我想在这里设置我的所有json数据,以便将其传输到我的客户端,如果我在某个地方出错,请纠正我,非常感谢,thx
const io = require('socket.io')();
io.on('connection', (client) => {
client.on('subscribeToTimer', (interval) => {
console.log('client is subscribing to timer with interval ', interval);
setInterval(() => {
client.emit('timer', new Date());
}, interval);
});
});
const port = 8000;
io.listen(port);
console.log('listening on port ', port);
基本方案是根据完成的,问题在哪里?用所需的
newState
替换timestamp
。使用this.setState(newState)
更改状态我已经相应地替换了它,现在它可以工作了,当我传递一个对象数组和一个object时也有很大的不同,因为react state必须是一个对象。如果你愿意的话,把数组包装成一个对象。我有同样的问题。没有答案。我可以发送日期,但不能发送任何其他类型的对象