diff --git a/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java b/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java index 79deda1..cee775e 100644 --- a/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java +++ b/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java @@ -78,7 +78,8 @@ class CIMConnectorManager{ private Semaphore semaphore = new Semaphore(1, true); - private SocketChannel socketChannel ; + private volatile SocketChannel socketChannel ; + private Context context; @@ -106,22 +107,8 @@ class CIMConnectorManager{ } private CIMConnectorManager(Context context) { this.context = context; - makeNioConnector(); } - - private void makeNioConnector() { - try { - if(socketChannel == null || !socketChannel.isOpen()) { - socketChannel = SocketChannel.open(); - socketChannel.socket().setTcpNoDelay(true); - socketChannel.socket().setKeepAlive(true); - socketChannel.socket().setReceiveBufferSize(READ_BUFFER_SIZE); - socketChannel.socket().setSendBufferSize(WRITE_BUFFER_SIZE); - } - - }catch(Exception ignore) {} - } public synchronized static CIMConnectorManager getManager(Context context) { @@ -149,10 +136,6 @@ class CIMConnectorManager{ return; } - if(!socketChannel.isOpen()) { - makeNioConnector(); - } - bossExecutor.execute(new Runnable() { @Override public void run() { @@ -169,6 +152,13 @@ class CIMConnectorManager{ semaphore.acquire(); + socketChannel = SocketChannel.open(); + socketChannel.configureBlocking(true); + socketChannel.socket().setTcpNoDelay(true); + socketChannel.socket().setKeepAlive(true); + socketChannel.socket().setReceiveBufferSize(READ_BUFFER_SIZE); + socketChannel.socket().setSendBufferSize(WRITE_BUFFER_SIZE); + socketChannel.socket().connect(new InetSocketAddress(host, port),CONNECT_TIME_OUT); semaphore.release(); diff --git a/cim-client-sdk/cim-java-sdk/src/com/farsunset/cim/sdk/client/CIMConnectorManager.java b/cim-client-sdk/cim-java-sdk/src/com/farsunset/cim/sdk/client/CIMConnectorManager.java index 0fb30ce..4ec39e5 100644 --- a/cim-client-sdk/cim-java-sdk/src/com/farsunset/cim/sdk/client/CIMConnectorManager.java +++ b/cim-client-sdk/cim-java-sdk/src/com/farsunset/cim/sdk/client/CIMConnectorManager.java @@ -90,23 +90,7 @@ class CIMConnectorManager { private ClientMessageEncoder messageEncoder = new ClientMessageEncoder(); private ClientMessageDecoder messageDecoder = new ClientMessageDecoder(); - private CIMConnectorManager() { - makeNioConnector(); - } - private void makeNioConnector() { - try { - - if(socketChannel == null || !socketChannel.isOpen()) { - socketChannel = SocketChannel.open(); - socketChannel.socket().setTcpNoDelay(true); - socketChannel.socket().setKeepAlive(true); - socketChannel.socket().setReceiveBufferSize(READ_BUFFER_SIZE); - socketChannel.socket().setSendBufferSize(WRITE_BUFFER_SIZE); - } - - }catch(Exception ignore) {} - } public synchronized static CIMConnectorManager getManager() { @@ -124,11 +108,7 @@ class CIMConnectorManager { if (isConnected()) { return; } - - if(!socketChannel.isOpen()) { - makeNioConnector(); - } - + bossExecutor.execute(new Runnable() { @Override public void run() { @@ -145,6 +125,13 @@ class CIMConnectorManager { semaphore.acquire(); + socketChannel = SocketChannel.open(); + socketChannel.configureBlocking(true); + socketChannel.socket().setTcpNoDelay(true); + socketChannel.socket().setKeepAlive(true); + socketChannel.socket().setReceiveBufferSize(READ_BUFFER_SIZE); + socketChannel.socket().setSendBufferSize(WRITE_BUFFER_SIZE); + socketChannel.socket().connect(new InetSocketAddress(host, port),CONNECT_TIME_OUT); semaphore.release(); diff --git a/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.7.0.jar b/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.7.0.jar index 768d00e..4e629a4 100644 Binary files a/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.7.0.jar and b/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.7.0.jar differ diff --git a/cim-use-examples/cim-client-java/lib/cim-java-sdk-3.7.0.jar b/cim-use-examples/cim-client-java/lib/cim-java-sdk-3.7.0.jar index e9d88de..896694d 100644 Binary files a/cim-use-examples/cim-client-java/lib/cim-java-sdk-3.7.0.jar and b/cim-use-examples/cim-client-java/lib/cim-java-sdk-3.7.0.jar differ