SendbirdChat SDK markAsRead limit 초과 이슈
Message Collection
collection = MessageCollection(
channel: channel,
params: MessageListParams()..reverse = true,
handler: MyMessageCollectionHandler(this),
)..initialize();
MyMessageCollectionHandler (MessageCollectionHandler)
class MyMessageCollectionHandler extends MessageCollectionHandler {
final GroupChannelPageState _state;
MyMessageCollectionHandler(this._state);
@override
void onMessagesAdded(MessageContext context, GroupChannel channel, List<BaseMessage> messages) async {
_state._refresh();
}
@override
void onMessagesUpdated(MessageContext context, GroupChannel channel, List<BaseMessage> messages) {
_state._refresh();
}
@override
void onMessagesDeleted(MessageContext context, GroupChannel channel, List<BaseMessage> messages) {
_state._refresh();
}
@override
void onChannelUpdated(GroupChannelContext context, GroupChannel channel) {}
@override
void onChannelDeleted(GroupChannelContext context, String deletedChannelUrl) {
Get.back();
}
@override
void onHugeGapDetected() {
_state._disposeMessageCollection();
_state._initializeMessageCollection();
}
}
_refresh
void _refresh({bool markAsRead = true}) async {
try {
if (markAsRead) {
SendbirdChat.markAsRead(channelUrls: [channelUrl]);
}
} catch (e) {
debugPrint(e.toString());
}
}
sendMessage
sendMessage(String messageBody) async {
String details = channelType == "normal"
? jsonEncode({
"alarmType": "chat",
"channelUrl": channelUrl,
"senderImage": myProfileUrl,
})
: jsonEncode({
"alarmType": "chat",
"channelUrl": channelUrl,
"senderImage": myProfileUrl,
"calringId": calringId,
});
final params = UserMessageCreateParams(message: messageBody)
..customType = channelType
..pushNotificationDeliveryOption = PushNotificationDeliveryOption.normal
..data = details;
thisChannel!.sendUserMessage(params);
}
코드는 이렇게 되어있는데
- 메시지창에 들어올때 (initialize)
- 메시지를 보낼때
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MarkAsReadRateLimitExceededException(800160)
에러가 뜨면서
보내는 사람에게는 동일한 메시지가 2개씩 보여집니다.
메시지 수신할 때에는 문제가 없습니다.
markAsRead를 주석처리 후 메시지 발신 할때에는 문제가 없습니다.
어느쪽에서 문제가 생긴걸까요?
답변 기다리겠습니다.
감사합니다.
// If problem, please fill out the below. If question, please delete.
[SDK Version]
sendbird_chat_sdk: ^4.2.10