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; } }