MethodChannelWebSocketSupport constructor
MethodChannelWebSocketSupport(
- WebSocketListener _listener
Implementation
MethodChannelWebSocketSupport(this._listener)
: _methodChannel = const MethodChannel(methodChannelName),
_textMessagesChannel = const EventChannel(textEventChannelName),
_byteMessagesChannel = const EventChannel(byteEventChannelName) {
// set method channel listener
_methodChannel.setMethodCallHandler((MethodCall call) {
switch (call.method) {
case 'onOpened':
// ws established
_listener.onWsOpened(DefaultWebSocketConnection(_methodChannel));
_addStreamEventListeners();
break;
case 'onClosing':
final args = call.arguments as Map;
final code = args['code'] ?? 4000; // map[] returns nullable value
_listener.onWsClosing(code, args['reason'] ?? '');
break;
case 'onClosed':
// ws closed
final args = call.arguments as Map;
final code = args['code'] ?? 4000; // map[] returns nullable value
_listener.onWsClosed(code, args['reason'] ?? '');
_removeStreamEventListeners();
break;
case 'onFailure':
final args = call.arguments as Map;
_listener.onError(WebSocketException(args['throwableType'],
args['errorMessage'], args['causeMessage']));
break;
case 'onStringMessage':
_listener.onStringMessage(call.arguments as String);
break;
case 'onByteArrayMessage':
_listener.onByteArrayMessage(call.arguments as Uint8List);
break;
default:
throw PlatformException(
code: methodChannelExceptionCode,
message: unexpectedMethodNameMessage,
details: call.method);
}
return Future.value(null);
});
}