diff --git a/lib/src/impl/realtime/channels.dart b/lib/src/impl/realtime/channels.dart index 8078a578b..43b12f828 100644 --- a/lib/src/impl/realtime/channels.dart +++ b/lib/src/impl/realtime/channels.dart @@ -51,13 +51,13 @@ class RealtimePlatformChannel extends PlatformObject if (options != null) 'options': options, }; - final _publishQueue = Queue<_RealtimePublishQueueItem>(); + final _publishQueue = Queue<_PublishQueueItem>(); Completer _authCallbackCompleter; @override Future publish({ - spec.Message message, - List messages, + Message message, + List messages, String name, Object data, }) async { @@ -66,16 +66,10 @@ class RealtimePlatformChannel extends PlatformObject if (message != null) { _messages = [message]; } else { - _messages ??= [ - spec.Message( - name: name, - data: data - ) - ]; + _messages = [Message(name: name, data: data)]; } } - final queueItem = _RealtimePublishQueueItem( - Completer(), message, messages); + final queueItem = _PublishQueueItem(Completer(), _messages); _publishQueue.add(queueItem); unawaited(_publishInternal()); return queueItem.completer.future; @@ -220,11 +214,9 @@ class RealtimePlatformChannels /// An item for used to enqueue a message to be published after an ongoing /// authCallback is completed -class _RealtimePublishQueueItem { - spec.Message message; +class _PublishQueueItem { List messages; final Completer completer; - _RealtimePublishQueueItem( - this.completer, this.message, this.messages); + _PublishQueueItem(this.completer, this.messages); } diff --git a/lib/src/impl/rest/channels.dart b/lib/src/impl/rest/channels.dart index 94008cd94..4610c3eb5 100644 --- a/lib/src/impl/rest/channels.dart +++ b/lib/src/impl/rest/channels.dart @@ -56,19 +56,14 @@ class RestPlatformChannel extends PlatformObject implements spec.RestChannel { Object data, }) async { var _messages = messages; - if(_messages == null){ + if (_messages == null) { if (message != null) { _messages = [message]; } else { - _messages ??= [ - spec.Message( - name: name, - data: data - ) - ]; + _messages = [Message(name: name, data: data)]; } } - final queueItem = _PublishQueueItem(Completer(), messages); + final queueItem = _PublishQueueItem(Completer(), _messages); _publishQueue.add(queueItem); unawaited(_publishInternal()); return queueItem.completer.future; @@ -153,7 +148,7 @@ class RestPlatformChannels extends spec.RestChannels { @override RestPlatformChannel createChannel(String name, ChannelOptions options) => - RestPlatformChannel(ably, name, options); + RestPlatformChannel(ably, name, options); } /// An item for used to enqueue a message to be published after an ongoing diff --git a/lib/src/spec/common.dart b/lib/src/spec/common.dart index ac38ef464..cc4b5da05 100644 --- a/lib/src/spec/common.dart +++ b/lib/src/spec/common.dart @@ -357,7 +357,9 @@ class AblyException implements Exception { @override String toString() { - if (message == null) return 'AblyException'; + if (message == null) { + return 'AblyException (${(code == null) ? "" : '$code '})'; + } return 'AblyException: $message (${(code == null) ? "" : '$code '})'; } }