2017-03-18 3 views
2

Wenn eine neue Nachricht gesendet wird, wird sie an alle verschiedenen Gruppenkanäle gesendet, und das sollte nicht standardmäßig so sein. Jeder Vorschlag geschätzt.Sendbird Messaging-Dienst dupliziert neue Nachrichten in jedem Gruppenkanal

Für Messaging Teil muss ich Array, um vorherige und neue Nachrichten zu speichern und laden, wenn es nötig ist.

Die verwendete Sprache ist react.js und es ist für einfache Web-App.

sendMessage(message) { 
const data = ''; 
const customType = ''; 
this.state.currentChannel.sendUserMessage(message, data, customType, (mess, error) => { 
    if (error) { 
    console.error(`error sending message: ${error}`); 
    return; 
    } 
    console.log(`message sent!! ${mess}`); 
    console.log(mess); 
    const messagesState = this.state.messages; 
    messagesState.push(mess); 
    this.setState({ 
    messages: messagesState, 
    }); 
}); 

}

Gibt es etwas falsch in diesem Teil?

Antwort

1

einfach eine leere Array-Handler vor jedem Kanal hinzufügen.

message = []; 
channelHandler = currentChannel; 
1

Ihr Channel Handler empfängt alle eingehenden Nachrichten. Sie müssen prüfen, ob der Kanal die Nachricht von dem einen entspricht, die Sie gerade in eingetragen.

Also, in onMessageReceived,

if (channel.url == myChannelUrl) { 
    // Add the message to myChannel's message list. 
} 
Verwandte Themen