feat: implement message delivery status tracking via socket events and provider state updates

This commit is contained in:
pradeepkumar
2026-03-28 20:13:25 +05:30
parent 74d53dbed3
commit 3c426f2a14
2 changed files with 39 additions and 0 deletions

View File

@@ -36,6 +36,7 @@ class SocketService {
final _supportTypingStopController = StreamController<Map<String, dynamic>>.broadcast();
final _connectionRequestController = StreamController<Map<String, dynamic>>.broadcast();
final _connectionResponseController = StreamController<Map<String, dynamic>>.broadcast();
final _deliveredController = StreamController<Map<String, dynamic>>.broadcast();
Stream<ChatMessage> get onNewMessage => _messageController.stream;
Stream<Map<String, dynamic>> get onTypingStart => _typingStartController.stream;
@@ -48,6 +49,7 @@ class SocketService {
Stream<Map<String, dynamic>> get onSupportTypingStop => _supportTypingStopController.stream;
Stream<Map<String, dynamic>> get onConnectionRequest => _connectionRequestController.stream;
Stream<Map<String, dynamic>> get onConnectionResponse => _connectionResponseController.stream;
Stream<Map<String, dynamic>> get onMessageDelivered => _deliveredController.stream;
bool get isConnected => _isConnected;
Future<void> connect() async {
@@ -186,6 +188,10 @@ class SocketService {
_connectionResponseController.add(Map<String, dynamic>.from(data as Map));
});
_socket!.on('message_delivered', (data) {
_deliveredController.add(Map<String, dynamic>.from(data as Map));
});
_socket!.connect();
}
@@ -312,5 +318,6 @@ class SocketService {
_supportTypingStopController.close();
_connectionRequestController.close();
_connectionResponseController.close();
_deliveredController.close();
}
}