From c0bddbb8488a9b7f2b2118fbf7439c8682002e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E5=86=9B?= Date: Tue, 28 Mar 2017 11:09:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=82=E5=B8=B8=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- .../cim/sdk/android/CIMConnectorManager.java | 8 +++++++- .../app/libs/cim-server-sdk-3.0.jar | Bin 87747 -> 87773 bytes 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f5ba0eb..f3d66c3 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ #说明: 此开源版本为基础功能版本,只有消息推送的基础功能!netty版本,和mina版本结构和功能完全一致,大家可以选择自己喜欢的或者合适的版本学习或者使用! -#侣信专业版1.7.0版本发布 +#侣信专业版1.7.2版本发布 #[http://farsunset.com](http://farsunset.com) diff --git a/cim_for_mina/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java b/cim_for_mina/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java index 80084c7..4bb71ed 100644 --- a/cim_for_mina/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java +++ b/cim_for_mina/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java @@ -20,6 +20,7 @@ *************************************************************************************** */ package com.farsunset.cim.sdk.android; +import java.io.Serializable; import java.net.InetSocketAddress; import java.util.Map; import java.util.Random; @@ -171,7 +172,12 @@ class CIMConnectorManager extends IoHandlerAdapter implements KeepAliveMessageF // 消息发送超时 5秒 wf.awaitUninterruptibly(WRITE_TIMEOUT); isSuccessed = wf.isWritten(); - exception = wf.getException(); + + if(wf.getException() instanceof Serializable) + { + exception = wf.getException(); + } + } if(!isSuccessed){ diff --git a/cim_for_mina/cim-client-android/app/libs/cim-server-sdk-3.0.jar b/cim_for_mina/cim-client-android/app/libs/cim-server-sdk-3.0.jar index c45d0588743f86b64af255f995708a1f2711a41b..fb2f179da27800ad9f950c9ae856d7b1194ec59b 100644 GIT binary patch delta 7931 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μs6Oq&ODcxfU+J#VMkLp7nmSZ($@_ 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 U4D2a_rGZ*=FbVd#5=tEOKY}l+h5!Hn delta 8108 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 ByR85K