connect method
Implementation
void connect(
{Iterable<String>? protocols,
required WebSocketSettings webSocketSettings}) async {
logger.info('connect $_url, ${webSocketSettings.extraHeaders}, $protocols');
try {
_socket = WebSocket(_url, 'sip');
_socket!.onOpen.listen((Event e) {
onOpen?.call();
});
_socket!.onMessage.listen((MessageEvent e) async {
if (e.data is Blob) {
dynamic arrayBuffer = await JSUtils.promiseToFuture(
JSUtils.callMethod(e.data, 'arrayBuffer', <Object>[]));
String message = String.fromCharCodes(arrayBuffer.asUint8List());
onMessage?.call(message);
} else {
onMessage?.call(e.data);
}
});
_socket!.onClose.listen((CloseEvent e) {
onClose?.call(e.code, e.reason);
});
} catch (e) {
onClose?.call(0, e.toString());
}
}