public Task <string> SendStringMessageForResultAsync(params string[] values) { UnityAppCommManager.Message message = new UnityAppCommManager.Message(); message.ResponseNeeded = true; message.ValueList.AddRange(values); lock (_WaitForResponseMessagesLock) { _WaitForResponseMessages.Add(message.Uuid, message); } CefBrowser.GetMainFrame().ExecuteJavaScriptAsync("gameInstance.SendMessage(\"XJUnityUtilCenter\", \"OnMessageReceived\", \"" + HttpUtility.UrlEncode(message.EncodeToString()) + "\")"); return(Task.Run <string>(() => { while (true) { lock (_ResponseMessagesLock) { if (_ResponseMessages.ContainsKey(message.Uuid)) { var responseMessage = _ResponseMessages[message.Uuid]; _ResponseMessages.Remove(message.Uuid); lock (_WaitForResponseMessagesLock) { _WaitForResponseMessages.Remove(message.Uuid); } return responseMessage.ValueList[0]; } } } })); }
public Task <string> SendStringMessageForResultAsync(params string[] values) { /* * Message message = new Message(true, values); * _UnfetchedMessageBuffer.Enqueue(message); * return Task.Run<string>(() => * { * while (!message.Responsed) * { * * } * return message.ResponseMessage; * });*/ UnityAppCommManager.Message message = new UnityAppCommManager.Message(); message.ResponseNeeded = true; message.ValueList.AddRange(values); lock (_WaitForResultMessagesLock) { _WaitForResultMessages.Add(message.Uuid, message); } lock (_UnfetchedMessageBufferLock) { _UnfetchedMessageBuffer.Enqueue(message); } //CefBrowser.GetMainFrame().ExecuteJavaScriptAsync("gameInstance.SendMessage(\"XJUnityUtilCenter\", \"OnMessageReceived\", \"" + message.EncodeToString() + "\")"); return(Task.Run <string>(() => { while (true) { lock (_ResponseMessagesLock) { if (_ResponseMessages.ContainsKey(message.Uuid)) { var responseMessage = _ResponseMessages[message.Uuid]; _ResponseMessages.Remove(message.Uuid); lock (_WaitForResultMessagesLock) { _WaitForResultMessages.Remove(message.Uuid); } return responseMessage.ValueList[0]; } } } })); }
private IEnumerator _GetText() { while (true) { UnityWebRequest www = UnityWebRequest.Get("http://localhost:" + EditorDebugPort + "/getmessage/"); yield return(www.SendWebRequest()); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { string[] messagesString = www.downloadHandler.text.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); foreach (string messageString in messagesString) { UnityAppCommManager.Message decodedMessage = new UnityAppCommManager.Message(); string[] pairsStrings = messageString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); foreach (string pairString in pairsStrings) { string[] pairStrings = pairString.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries); string key = pairStrings[0]; string value = pairStrings[1]; if (key == "UUID") { decodedMessage.Uuid = Guid.Parse(value); } else if (key == "ResponseNeeded") { decodedMessage.ResponseNeeded = bool.Parse(value); } else if (key == "MESSAGE_0") { decodedMessage.Value = value; } } //_ReceivedMessageBuffer.Add(decodedMessage); Debug.Log("NEW_MESSAGE::\n" + decodedMessage); } } } }
private void _OnReceived(object sender, UnityAppCommManager.Message e) { System.Diagnostics.Debug.WriteLine(e); }
public void SendStringMessage(params string[] values) { UnityAppCommManager.Message message = new UnityAppCommManager.Message(false, values); CefBrowser.GetMainFrame().ExecuteJavaScriptAsync("gameInstance.SendMessage(\"XJUnityUtilCenter\", \"OnMessageReceived\", \"" + HttpUtility.UrlEncode(message.EncodeToString()) + "\")"); }