From 16f6dafc5af6b175c8646ace665d9a7efea49bb7 Mon Sep 17 00:00:00 2001 From: Mrkelly Date: Tue, 10 Mar 2015 13:44:49 +0800 Subject: [PATCH 1/6] IPAdreess try parse, otherwise the "Dns.GetHostEntry" sometimes very very slow --- pomelo-dotnetClient/src/client/PomeloClient.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pomelo-dotnetClient/src/client/PomeloClient.cs b/pomelo-dotnetClient/src/client/PomeloClient.cs index 3b10495..6d64052 100644 --- a/pomelo-dotnetClient/src/client/PomeloClient.cs +++ b/pomelo-dotnetClient/src/client/PomeloClient.cs @@ -70,15 +70,20 @@ public void initClient(string host, int port, Action callback = null) try { - IPAddress[] addresses = Dns.GetHostEntry(host).AddressList; - foreach (var item in addresses) + if (!IPAddress.TryParse(host, out ipAddress)) { - if (item.AddressFamily == AddressFamily.InterNetwork) + var addresses = Dns.GetHostEntry(host).AddressList; + + foreach (var item in addresses) { - ipAddress = item; - break; + if (item.AddressFamily == AddressFamily.InterNetwork) + { + ipAddress = item; + break; + } } } + } catch (Exception e) { From 4c0bd25e7ea1f0558853589880b8a24dd547b66b Mon Sep 17 00:00:00 2001 From: Mrkelly Date: Tue, 10 Mar 2015 13:50:35 +0800 Subject: [PATCH 2/6] DLL Auto build to the dist folder --- dist/pomelo-dotnetClient.dll | Bin 29696 -> 32768 bytes .../pomelo-dotnetClient.csproj | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/pomelo-dotnetClient.dll b/dist/pomelo-dotnetClient.dll index 4009d5712d5b5b430e8ff5c61903745b544a657d..df05c7e79514cb51110e049d88817d0bea22911c 100644 GIT binary patch literal 32768 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 literal 29696 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 full false - bin\Debug + ..\dist\ DEBUG; prompt 4 From 159e01e82aa72ee68daebf1ef4122684d7dc5b44 Mon Sep 17 00:00:00 2001 From: Mrkelly Date: Tue, 10 Mar 2015 13:56:59 +0800 Subject: [PATCH 3/6] ignore Good sync --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 4d452a9..5192a0f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,7 @@ /pomelo-dotnetClient/obj /pomelo-dotnetClient/bin /test/obj -/test/bin \ No newline at end of file +/test/bin + +# the Good Sync Folder +*_gsdata_/ \ No newline at end of file From 3caf64b5caa96c7e71736f8826a89f1f9a702c5d Mon Sep 17 00:00:00 2001 From: Mrkelly Date: Tue, 10 Mar 2015 14:14:52 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=8F=AF=E9=80=89=E7=9A=84=20=E5=A4=9A?= =?UTF-8?q?=E7=BA=BF=E7=A8=8BWaitOne=EF=BC=8C=20=E5=9B=A0=E4=B8=BA?= =?UTF-8?q?=E4=BC=9A=E5=A0=B5=E5=A1=9E=E4=B8=BB=E7=BA=BF=E7=A8=8B=E3=80=82?= =?UTF-8?q?=E3=80=82=E3=80=82=20=20=20=E5=8F=AF=E9=80=89=E7=9A=84=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E5=9C=A8Unity=E4=B8=AD=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E5=8D=8F=E7=A8=8B=E5=8E=BB=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E4=B8=8A=EF=BC=8C=E4=B8=8D=E7=94=A8=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E6=95=B4=E4=B8=AAUI=E5=81=9C=E9=A1=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/pomelo-dotnetClient.dll | Bin 32768 -> 33280 bytes .../src/client/PomeloClient.cs | 11 ++++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/dist/pomelo-dotnetClient.dll b/dist/pomelo-dotnetClient.dll index df05c7e79514cb51110e049d88817d0bea22911c..8cd3018e733bca317e5b37597370c1980ad08955 100644 GIT binary patch delta 5719 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 delta 5443 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 REzjK=<#X2EBu$C(zW}RC7sCJm diff --git a/pomelo-dotnetClient/src/client/PomeloClient.cs b/pomelo-dotnetClient/src/client/PomeloClient.cs index 6d64052..873cce1 100644 --- a/pomelo-dotnetClient/src/client/PomeloClient.cs +++ b/pomelo-dotnetClient/src/client/PomeloClient.cs @@ -39,7 +39,7 @@ public class PomeloClient : IDisposable public event Action NetWorkStateChangedEvent; - private NetWorkState netWorkState = NetWorkState.CLOSED; //current network state + public NetWorkState netWorkState {get; private set;} //current network state private EventManager eventManager; private Socket socket; @@ -48,10 +48,15 @@ public class PomeloClient : IDisposable private uint reqId = 1; private ManualResetEvent timeoutEvent = new ManualResetEvent(false); + private int timeoutMSec = 8000; //connect timeout count in millisecond - public PomeloClient() + private bool _keepWaitWhenConnect = true; + + public PomeloClient(bool keepWaitWhenConnect = true) { + _keepWaitWhenConnect = keepWaitWhenConnect; + netWorkState = NetWorkState.CLOSED; } /// @@ -126,7 +131,7 @@ public void initClient(string host, int port, Action callback = null) } }), this.socket); - if (timeoutEvent.WaitOne(timeoutMSec, false)) + if (_keepWaitWhenConnect && timeoutEvent.WaitOne(timeoutMSec, false)) { if (netWorkState != NetWorkState.CONNECTED && netWorkState != NetWorkState.ERROR) { From 96630f3cac7d02885f8dd0fd828eb49fab91da29 Mon Sep 17 00:00:00 2001 From: Mrkelly Date: Fri, 24 Jul 2015 15:32:17 +0800 Subject: [PATCH 5/6] bug with JsonArray --- pomelo-dotnetClient/src/protobuf/MsgDecoder.cs | 6 ++++-- pomelo-dotnetClient/src/protobuf/MsgEncoder.cs | 7 ++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pomelo-dotnetClient/src/protobuf/MsgDecoder.cs b/pomelo-dotnetClient/src/protobuf/MsgDecoder.cs index 18a7b47..8d4e93f 100755 --- a/pomelo-dotnetClient/src/protobuf/MsgDecoder.cs +++ b/pomelo-dotnetClient/src/protobuf/MsgDecoder.cs @@ -93,12 +93,12 @@ private JsonObject decodeMsg(JsonObject msg, JsonObject proto, int length) object _name; if (!msg.TryGetValue(name.ToString(), out _name)) { - msg.Add(name.ToString(), new List()); + msg.Add(name.ToString(), new JsonArray()); } object value_type; if (msg.TryGetValue(name.ToString(), out _name) && ((JsonObject)(value)).TryGetValue("type", out value_type)) { - decodeArray((List)_name, value_type.ToString(), proto); + decodeArray((JsonArray)_name, value_type.ToString(), proto); } break; } @@ -148,6 +148,8 @@ private object decodeProp(string type, JsonObject proto) return this.decodeDouble(); case "string": return this.decodeString(); + case "object": + return SimpleJson.SimpleJson.DeserializeObject(this.decodeString()); default: return this.decodeObject(type, proto); } diff --git a/pomelo-dotnetClient/src/protobuf/MsgEncoder.cs b/pomelo-dotnetClient/src/protobuf/MsgEncoder.cs index 4bba9df..83cbe40 100755 --- a/pomelo-dotnetClient/src/protobuf/MsgEncoder.cs +++ b/pomelo-dotnetClient/src/protobuf/MsgEncoder.cs @@ -146,9 +146,9 @@ private int encodeMsg(byte[] buffer, int offset, JsonObject proto, JsonObject ms object msg_key; if (msg.TryGetValue(key, out msg_key)) { - if (((List)msg_key).Count > 0) + if (((JsonArray)msg_key).Count > 0) { - offset = encodeArray((List)msg_key, (JsonObject)value, offset, buffer, proto); + offset = encodeArray((JsonArray)msg_key, (JsonObject)value, offset, buffer, proto); } } break; @@ -163,7 +163,7 @@ private int encodeMsg(byte[] buffer, int offset, JsonObject proto, JsonObject ms /// /// Encode the array type. /// - private int encodeArray(List msg, JsonObject value, int offset, byte[] buffer, JsonObject proto) + private int encodeArray(JsonArray msg, JsonObject value, int offset, byte[] buffer, JsonObject proto) { object value_type, value_tag; if (value.TryGetValue("type", out value_type) && value.TryGetValue("tag", out value_tag)) @@ -209,6 +209,7 @@ private int encodeProp(object value, string type, int offset, byte[] buffer, Jso case "double": this.writeDouble(buffer, ref offset, value); break; + case "object": case "string": this.writeString(buffer, ref offset, value); break; From df15b3ebeb923f04ccb6ac4cbc45bcb846b54b66 Mon Sep 17 00:00:00 2001 From: Mrkelly Date: Fri, 24 Jul 2015 15:44:49 +0800 Subject: [PATCH 6/6] revert gitignore --- .gitignore | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 5192a0f..4d452a9 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,4 @@ /pomelo-dotnetClient/obj /pomelo-dotnetClient/bin /test/obj -/test/bin - -# the Good Sync Folder -*_gsdata_/ \ No newline at end of file +/test/bin \ No newline at end of file