Я искал подобные вопросы здесь, но ни один из них не работает для меня.
Я знаю, что некоторые люди рекомендуют не использовать сокет внутри другого события, но я понятия не имел, как вызывать сокет при возникновении события.
Итак, я инициализировал сокет внутри другого события, которое обновляется каждый раз, когда что-то происходит. Но сокетное соединение повторяет предыдущий результат с каждым новым обновлением.
Я попытался инициализировать сокет в жизни componentDidMount, и он просто не работает.
class UploadComponent extends Component {
constructor (props) {
super(props);
this.state = {
endpoint: "http://localhost:3000",
}
this.uploadModal = this.uploadModal.bind(this);
}
uploadModal () {
update.on('success', file => {
let {endpoint} = this.state;
let socket = socketIOClient(endpoint, {transports: ['websocket', 'polling', 'flashsocket']});
socket.on('data', (mydata) => {
console.log(mydata) // <-- This gets fired multiple times.
})
})
}
// some more code //
}
Я хочу запускать сокет всякий раз, когда происходит событие «update» без дублирования сообщения.