Я работаю с несколькими модулями и все Inplace КРОМЕ за то, что Socket.io не всегда работает ...Socket.io не всегда работает
У нас есть несколько «маршрутов» мы уже используем в Socket.io, которые работают отлично и работают каждый раз!
Но теперь мы вводим новый
'заказать/новый', который должен отображать каждый новый заказ.
Создан новый заказ, сообщение отправляется по очереди, мы возвращаем его через запрос GET, и мы отправили его пользователю с Socket.io.
Но функция испускания не всегда «испускает» (?!) ... Может ли кто-нибудь мне помочь?
Сервер:
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))
}
});
}
фронт (React):
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 и т. Д.)
Проблем нет, что работает;) – CreasolDev