🐛 Make sure the send read event triggered before dispose chat message controller

This commit is contained in:
LittleSheep 2025-02-23 12:03:17 +08:00
parent 5468fc0748
commit c8c455bb57

View File

@ -514,6 +514,11 @@ class ChatMessageController extends ChangeNotifier {
} }
_readEventDebounce = Timer(const Duration(milliseconds: 500), () { _readEventDebounce = Timer(const Duration(milliseconds: 500), () {
_sendReadEvent();
});
}
void _sendReadEvent() {
_ws.conn?.sink.add(jsonEncode( _ws.conn?.sink.add(jsonEncode(
WebSocketPackage( WebSocketPackage(
method: 'events.read', method: 'events.read',
@ -525,12 +530,14 @@ class ChatMessageController extends ChangeNotifier {
).toJson(), ).toJson(),
)); ));
log('[Messaging] Send read event request: $_readEventAnchor'); log('[Messaging] Send read event request: $_readEventAnchor');
});
} }
@override @override
void dispose() { void dispose() {
_wsSubscription?.cancel(); _wsSubscription?.cancel();
if (_readEventDebounce?.isActive ?? false) {
_sendReadEvent();
}
_readEventDebounce?.cancel(); _readEventDebounce?.cancel();
super.dispose(); super.dispose();
} }