File tree Expand file tree Collapse file tree 1 file changed +15
-5
lines changed
Expand file tree Collapse file tree 1 file changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -40,6 +40,7 @@ class SseClient extends StreamChannelMixin<String> {
4040 _eventSource.addEventListener ('message' , _onIncomingMessage);
4141 _eventSource.addEventListener ('control' , _onIncomingControlMessage);
4242 _eventSource.onError.listen (_incomingController.addError);
43+ _startPostingMessages ();
4344 }
4445
4546 Stream <Event > get onOpen => _eventSource.onOpen;
@@ -83,12 +84,21 @@ class SseClient extends StreamChannelMixin<String> {
8384 close ();
8485 }
8586
87+ final _messages = StreamController <dynamic >();
88+
8689 void _onOutgoingMessage (dynamic message) async {
87- var encoded = jsonEncode (message);
88- try {
89- await _client.post (_serverUrl, body: encoded);
90- } catch (e) {
91- _logger.warning ('Unable to encode outgoing message: $e ' );
90+ _messages.add (message);
91+ }
92+
93+ void _startPostingMessages () async {
94+ await for (var message in _messages.stream) {
95+ try {
96+ await _client.post (_serverUrl, body: jsonEncode (message));
97+ } on JsonUnsupportedObjectError catch (e) {
98+ _logger.warning ('Unable to encode outgoing message: $e ' );
99+ } on ArgumentError catch (e) {
100+ _logger.warning ('Invalid argument: $e ' );
101+ }
92102 }
93103 }
94104}
You can’t perform that action at this time.
0 commit comments