Служба сообщений Sendbird дублирует новые сообщения в каждом групповом канале
Когда я отправляю новое сообщение, оно отправляется по всем отдельным групповым каналам, и так не должно быть по умолчанию. Любое предложение приветствуется.
Для обмена сообщениями я должен массив для хранения предыдущих и новых сообщений и загружать его, когда это необходимо.
Используемый язык - response.js и предназначен для простого веб-приложения.
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,
});
});
}
Что-то не так в этой части?!
2 ответа
Решение
Просто добавьте пустой массив перед каждым обработчиком канала.
message = [];
channelHandler = currentChannel;
Ваш обработчик каналов получает все входящие сообщения. Вы должны проверить, соответствует ли канал сообщения тому, в котором вы в настоящее время введены.
Итак, в onMessageReceived
,
if (channel.url == myChannelUrl) {
// Add the message to myChannel's message list.
}