我正在使用ReactJ与pubnub一起构建一个聊天应用程序。问题是我的第一条消息是发送一次,第二条是发送两次,第三条是发送三次。有什么不对的,这是我的密码。我需要在某个时候取消订阅吗?消息不只是多次显示,实际上是发送的。
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;发布于 2018-05-08 19:03:45
我相信这不是重复出版。我觉得你一遍又一遍地订阅同一个频道……在发布“一次又一次”的同时,对于每一个新订阅,您都会接收到所有发布到该频道的消息(比如历史)。
所以1st publish->subscribe-> 1 message 2nd publish->subscribe-> 2 messages 3rd publish->subscribe-> 3 messages等等..。
最好,阿维。
https://stackoverflow.com/questions/50222497
复制相似问题