コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
 public static UniTask SendAsync(string message, CancellationToken cancellationToken = default)
 {
     return(MainThreadBoundaryAsync(
                () => UnityMessageManager.onUnityMessage(message),
                cancellationToken));
 }
コード例 #7
0
 /// <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);
 }