Pubnub多次发送消息

时间:2018-05-07 21:12:18

标签: javascript reactjs pubnub

我正在使用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;

1 个答案:

答案 0 :(得分:1)

我认为这不是发布的重复。 我认为你正在重新订阅'一遍又一遍地对同一频道......一次又一次地发布'所以每次新订阅都会收到发布到该频道的所有消息(如历史记录)

所以, 1st publish->subscribe-> 1 message 2nd publish->subscribe-> 2 messages 3rd publish->subscribe-> 3 messages 等等...

  1. 您的PubNub init应该是全局和/或更好地管理Subscribe / Publish调用。
  2. 请使用UUID并将其设置为静态值
  3. 最佳, 阿维。