Javascript Pubnub多次发送消息
我正在使用ReactJs构建一个带有pubnub的聊天应用程序。问题是我的第一封邮件发送了1次,第二封邮件发送了两次,第三封邮件发送了3次。可能有什么问题,这是我的代码。我需要在某个时候取消订阅吗?消息不仅显示多次,而且实际上已发送Javascript Pubnub多次发送消息,javascript,reactjs,pubnub,Javascript,Reactjs,Pubnub,我正在使用ReactJs构建一个带有pubnub的聊天应用程序。问题是我的第一封邮件发送了1次,第二封邮件发送了两次,第三封邮件发送了3次。可能有什么问题,这是我的代码。我需要在某个时候取消订阅吗?消息不仅显示多次,而且实际上已发送 class App extends Component { constructor(props) { super(props); this.pubnub = new PubNub({ publishKe
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;
我相信这不是出版的复制品。 我认为你正在一次又一次地“订阅”同一频道。。。在“一次又一次”发布时,每次新订阅都会收到发布到该频道的所有消息(如历史记录) 所以,
1st publish->subscribe->1条消息
第二次发布->订阅->2条消息
第三次发布->订阅->3条消息
等等
Avi.更新1。您正在为每个sendMessage()添加侦听器这是错误的,您只需在sendMessage范围之外添加一次侦听器。2.订阅您应该只订阅一次,而不是每次sendMessage()调用都订阅。祝你好运,阿维