listen method
StreamSubscription
listen(
{ - required dynamic onMessage(
- TIncoming message
),
- dynamic onErrorMessage(
- ArriError error
)?,
- dynamic onEvent(
- WsEvent<TIncoming> event
)?,
- dynamic onConnectionError(
- Object?
)?,
- dynamic onDone()?,
- bool? cancelOnError,
})
Implementation
StreamSubscription listen({
/**
* Fires when receiving a "message" event from the server
*/
required Function(TIncoming message) onMessage,
/**
* Fires when receiving an "error" event from the server
*/
Function(ArriError error)? onErrorMessage,
/**
* Fires when receiving any event from the server
*/
Function(WsEvent<TIncoming> event)? onEvent,
Function(Object?)? onConnectionError,
Function()? onDone,
bool? cancelOnError,
}) {
return channel.stream.listen(
(message) {
if (message is! String) {
return;
}
final event = WsEvent.fromString(message, parser);
onEvent?.call(event);
switch (event) {
case WsMessageEvent<TIncoming>():
onMessage(event.data);
break;
case WsErrorEvent<TIncoming>():
onErrorMessage?.call(event.data);
break;
case WsRawEvent<TIncoming>():
break;
}
},
onError: onConnectionError,
onDone: onDone,
cancelOnError: cancelOnError,
);
}