/// <summary> /// Creates and sends plain message type. /// </summary> /// <param name="id">The unity message ID.</param> /// <param name="type">The type of the request.</param> /// <param name="data">The optional request data.</param> private static void SendPlainInternal(string id, int type, object data) { string json = SerializeMessage(id, type, data); CheckMainThreadAccess(); UnityMessageManager.onUnityMessage(MessagePrefix + json); }
/// <summary> /// Creates and sends request message type. /// </summary> /// <param name="id">The unity message ID.</param> /// <param name="uuid">The unique request ID.</param> /// <param name="type">The type of the request.</param> /// <param name="data">The optional request data.</param> private static async UniTask SendRequestInternalAsync(string id, int uuid, int type, object data, CancellationToken cancellationToken) { string json = SerializeRequest(id, uuid, type, data); await MainThreadBoundaryAsync( () => UnityMessageManager.onUnityMessage(MessagePrefix + json), cancellationToken); }
/// <summary> /// Creates cancellation notification message in JSON format. /// </summary> /// <param name="id">The unity message ID.</param> /// <param name="uuid">The unique request ID.</param> private static void SendCanceled(string id, int uuid) { string json = "{" + $"\"{nameof(UnityMessage.id)}\":{JsonConvert.SerializeObject(id)}" + $",\"{nameof(UnityMessage.type)}\":{(int)UnityMessageType.Canceled}" + $",\"{nameof(UnityMessage.uuid)}\":{uuid}" + "}"; CheckMainThreadAccess(); UnityMessageManager.onUnityMessage(MessagePrefix + json); }
/// <summary> /// Creates error message in JSON format. /// </summary> /// <param name="id">The unity message ID.</param> /// <param name="uuid">The unique request ID.</param> /// <param name="error">The optional response data.</param> private static void SendError(string id, int uuid, Exception error) { string json = "{" + $"\"{nameof(UnityMessage.id)}\":{JsonConvert.SerializeObject(id)}" + $",\"{nameof(UnityMessage.type)}\":{(int)UnityMessageType.Error}" + $",\"{nameof(UnityMessage.uuid)}\":{uuid}" + (error != null ? $",\"{nameof(UnityMessage.data)}\":{JsonConvert.SerializeObject(error)}" : string.Empty) + "}"; CheckMainThreadAccess(); UnityMessageManager.onUnityMessage(MessagePrefix + json); }
/// <summary> /// Creates response message in JSON format. /// </summary> /// <param name="id">The unity message ID.</param> /// <param name="uuid">The unique request ID.</param> /// <param name="data">THe optional response data.</param> private static void SendResponse(string id, int uuid, object data) { string json = "{" + $"\"{nameof(UnityMessage.id)}\":{JsonConvert.SerializeObject(id)}" + $",\"{nameof(UnityMessage.type)}\":{(int)UnityMessageType.Response}" + $",\"{nameof(UnityMessage.uuid)}\":{uuid}" + (data != null ? $",\"{nameof(UnityMessage.data)}\":{JsonConvert.SerializeObject(data)}" : string.Empty) + "}"; CheckMainThreadAccess(); UnityMessageManager.onUnityMessage(MessagePrefix + json); }
public static UniTask SendAsync(string message, CancellationToken cancellationToken = default) { return(MainThreadBoundaryAsync( () => UnityMessageManager.onUnityMessage(message), cancellationToken)); }
/// <summary> /// Sends unformatted message to the React Native engine. /// </summary> /// <param name="message">The unformatted message.</param> /// <remarks> /// Message is expected to be in UTF8 encoding. /// </remarks> public static void Send(string message) { CheckMainThreadAccess(); UnityMessageManager.onUnityMessage(message); }