From 82954841147ed6e258fefcff926697885ef65d7b Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期五, 13 十二月 2019 14:28:11 +0800
Subject: [PATCH] 目前可以走通连接,和发送数据;需要关注ByteBuf是否需要手动释放,什么时候释放; 修改了google json array解析数据

---
 im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java b/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java
index 3867e0d..4306b86 100644
--- a/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java
+++ b/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java
@@ -12,10 +12,13 @@
 import com.anyun.im_lib.listener.IMSConnectStatusCallback;
 import com.anyun.im_lib.listener.OnEventListener;
 
+import java.nio.ByteBuffer;
 import java.util.Vector;
 import java.util.function.ToDoubleBiFunction;
 
 import io.netty.bootstrap.Bootstrap;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.ByteBufAllocator;
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelOption;
 import io.netty.channel.EventLoopGroup;
@@ -176,13 +179,14 @@
         try {
             channel = bootstrap.connect(currentHost,currentPort).sync().channel();
         } catch (InterruptedException e) {
+            Log.i(TAG, String.format("杩炴帴Server(ip[%s],port[%d]澶辫触)",currentHost,currentPort));
             try {
                 Thread.sleep(500);
             } catch (InterruptedException ex) {
                 ex.printStackTrace();
             }
 
-            Log.i(TAG, String.format("杩炴帴Server(ip[%s],port[%d]澶辫触)",currentHost,currentPort));
+
             channel = null;
         }
     }
@@ -318,7 +322,9 @@
             Log.i(TAG, "sendMsg fail,channel涓虹┖"+msg);
         }
         try {
-            channel.writeAndFlush(msg);
+            ByteBuf byteBuf = ByteBufAllocator.DEFAULT.ioBuffer();
+            byteBuf.writeBytes(msg.getBytes());
+            channel.writeAndFlush(byteBuf);
         } catch (Exception e) {
             Log.i(TAG, "鍙戦�佹秷鎭け璐ワ紝reason="+e.getMessage()+"\t"+msg);
         }
@@ -388,6 +394,7 @@
 
         @Override
         public void run() {
+            Log.i(TAG, "鎵ц閲嶈繛浠诲姟");
             if (!isFirst){
                 onConnectStatusCallback(IMSConfig.CONNECT_STATE_FAILURE);
             }
@@ -458,7 +465,7 @@
                     return IMSConfig.CONNECT_STATE_FAILURE;
                 }
                 String[] address = serverUrl.split(" ");
-                for (int j = 0; j < IMSConfig.DEFAULT_RECONNECT_COUNT; j++) {
+                for (int j = 1; j < IMSConfig.DEFAULT_RECONNECT_COUNT; j++) {
                     //濡傛灉ims宸茬粡鍏抽棴锛屾垨缃戠粶涓嶅彲鐢紝鐩存帴鍥炶皟杩炴帴鐘舵�侊紝涓嶅啀杩涜杩炴帴
                     if (isClosed || !isNetworkAvaliable()){
                         return IMSConfig.CONNECT_STATE_FAILURE;
@@ -471,6 +478,7 @@
                     try {
                         currentPort = Integer.parseInt(address[1]);
                         currentHost = address[0];
+                        Log.i(TAG, String.format("瑙f瀽鍦板潃[%s],port[%d]",currentHost,currentPort));
                         //杩炴帴鏈嶅姟鍣�
                         toServer();
                         //channel涓嶄负绌猴紝鍒欒涓鸿繛鎺ュ凡缁忔垚鍔�

--
Gitblit v1.8.0