Я использую ReactJs для создания приложения чата с pubnub. Проблема в том, что мое первое сообщение отправляется 1 раз, второе отправляется дважды, а третье отправляется 3 раза. Что может быть не так, вот мой код. Нужно ли отписываться в какой-то момент? Сообщение не просто отображается несколько раз, оно фактически отправлено.
class App extends Component {
constructor(props) {
super(props);
this.pubnub = new PubNub({
publishKey: 'demo',
subscribeKey: 'demo',
});
this.sendMessage = this.sendMessage.bind(this);
}
sendMessage() {
this.pubnub.publish({
channel: "simple-chat",
message: {
text: this.state.currentMesage,
sender: this.pubnub.getUUID()
}
});
this.setState({
currentMesage: ''
});
this.pubnub.subscribe({
channels: ['simple-chat'],
withPresence: true
});
this.pubnub.addListener({
message: (evt) => {
console.log('you have got a message:' + JSON.stringify(evt));
this.state.messages.push({
text: evt.message.text
})
this.setState({
messages: this.state.messages
});
}
});
}
export default App;