public override void SendMessage(ARDSignalingMessage message)
        {
            Contract.Requires(!string.IsNullOrEmpty(RoomId));
            var data    = message.JsonData;
            var payload = data != null ? new NSString(data, NSStringEncoding.UTF8) : new NSString("{}");

            switch (State)
            {
            case ARDSignalingChannelState.Registered:
                var messageDict = new NSDictionary(
                    "cmd", "send",
                    "msg", payload);

                var messageJSON = NSJsonSerialization.Serialize(
                    messageDict, NSJsonWritingOptions.PrettyPrinted, out NSError err);

                var messageString = new NSString(
                    messageJSON, NSStringEncoding.UTF8);
                SendMessage(messageString);
                break;

            default:
                Debug.WriteLine($"C->WSS POST:{payload}");
                var url = new NSUrl(WebRestFormated);
                url.SendAsyncPostToURL(data, null);
                break;
            }
        }