[英]Socket.io not always working
我正在使用一些模块,并且除了socket.io并不总是可以正常工作外,其他所有内容都在原地...
我们已经在Socket.io中使用了一些“路线”,它们都很好用,并且每次都能工作!
但是现在,我们正在引入一个新的
“订单/新订单”,应显示即将收到的每个新订单。
创建了一个新的订单get,通过队列发送了一条消息,我们通过GET请求检索该消息,然后使用Socket.io将其发送给用户。
但是send函数并不总是'emit'(?!)...有人可以帮我吗?
服务器:
io.on('connection', function (socket) {
// somewhere else calls this function, nothing wrong here...
function (mes) {
console.log('New order received: ', mes);
var doc_id = JSON.parse(mes)._id;
request
.get(urls['order/get'].replace(':id', doc_id))
.end(function (err, res) {
console.log(err);
if (res.ok) {
console.log(chalk.green('OK: [GET] - ORDER/GET - ORDER_ID: ' + doc_id));
// The above console.log get's called, so still working...
socket.emit('order/new', res.body);
// THIS socket.emit is called randomly, it doesn't work everytime...
} else {
console.log(chalk.red('ERROR: [GET] - ORDER/GET - ' + res.text))
}
});
}
正面(反应):
var OrdersViewer = React.createClass({
setNewOrder (order) {
console.log("new order gotten nr.", this.state.orders.length);
// this doesn't always get called...
var orders = _.cloneDeep(this.state.orders);
orders.push(order);
this.setState({orders});
},
componentDidMount() {
socket.on('order/new', this.setNewOrder)
},
render() {
// renders stuff
}
});
如果需要更多信息,请在下面的评论中说,一切都是最新的(Node.js,React.js,Socket.io等)
我看到setNewOrder的一个问题。
var OrdersViewer = React.createClass({
setNewOrder (order) {
console.log("new order gotten nr.", this.state.orders.length);
// this doesn't always get called...
var orders = _.cloneDeep(this.state.orders);
orders.push(order);
//this.setState({orders});
this.setState({orders: orders});
},
componentDidMount() {
socket.on('order/new', this.setNewOrder)
},
render() {
// renders stuff
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.