sendMessage method
Sends a single WebSocket message.
The returned future will complete successfully when the message is sent and with an Error on failure.
See NSURLSessionWebSocketTask.sendMessage:completionHandler:
Implementation
Future<void> sendMessage(URLSessionWebSocketMessage message) async {
final completer = Completer<void>();
final completionPort = ReceivePort();
completionPort.listen((message) {
final ep = Pointer<ncb.ObjCObject>.fromAddress(message as int);
if (ep.address == 0) {
completer.complete();
} else {
final error = Error._(ncb.NSError.castFromPointer(linkedLibs, ep,
retain: false, release: true));
completer.completeError(error);
}
completionPort.close();
});
helperLibs.CUPHTTPSendMessage(_urlSessionWebSocketTask, message._nsObject,
completionPort.sendPort.nativePort);
await completer.future;
}