mirror of
https://gitee.com/farsunset/cim.git
synced 2025-07-19 06:26:15 +08:00
1.服务端springboot升级2.1.4,protobuf升级3.7.0
2.android sdk升级,适配android8.0+,修复一些之前的兼容性问题 2.消息的id字段名由mid修改为id,类型由String修改为long;
This commit is contained in:
parent
ffc6f89527
commit
f5efbe075d
@ -26,7 +26,7 @@ import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Semaphore;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import org.apache.mina.core.future.ConnectFuture;
|
||||
import org.apache.mina.core.future.IoFutureListener;
|
||||
@ -76,7 +76,9 @@ class CIMConnectorManager extends IoHandlerAdapter implements KeepAliveMessageFa
|
||||
|
||||
|
||||
private ExecutorService executor = Executors.newFixedThreadPool(1);
|
||||
private Semaphore semaphore = new Semaphore(1,true);
|
||||
|
||||
private final AtomicBoolean CONNECTING_FLAG = new AtomicBoolean(false) ;
|
||||
|
||||
private CIMConnectorManager(Context ctx) {
|
||||
context = ctx;
|
||||
makeNioConnector();
|
||||
@ -128,10 +130,13 @@ class CIMConnectorManager extends IoHandlerAdapter implements KeepAliveMessageFa
|
||||
return;
|
||||
}
|
||||
|
||||
if (isConnected() || !semaphore.tryAcquire()) {
|
||||
|
||||
if (CONNECTING_FLAG.get() || isConnected()) {
|
||||
return;
|
||||
}
|
||||
|
||||
CONNECTING_FLAG.set(true);
|
||||
|
||||
if(connector == null || connector.isDisposed()) {
|
||||
makeNioConnector();
|
||||
}
|
||||
@ -149,7 +154,7 @@ class CIMConnectorManager extends IoHandlerAdapter implements KeepAliveMessageFa
|
||||
connector.connect(remoteAddress).addListener(new IoFutureListener<ConnectFuture>() {
|
||||
@Override
|
||||
public void operationComplete(ConnectFuture future) {
|
||||
semaphore.release();
|
||||
CONNECTING_FLAG.set(false);
|
||||
future.removeListener(this);
|
||||
if(future.getException() != null) {
|
||||
handleConnectFailure(future.getException(),remoteAddress);
|
||||
|
@ -96,7 +96,7 @@ public interface CIMConstant {
|
||||
String ACTION_REPLY_RECEIVED = "com.farsunset.cim.REPLY_RECEIVED";
|
||||
|
||||
// 网络变化广播
|
||||
String ACTION_NETWORK_CHANGED = "com.farsunset.cim.NETWORK_CHANAGED";
|
||||
String ACTION_NETWORK_CHANGED = "com.farsunset.cim.NETWORK_CHANGED";
|
||||
|
||||
// 重试连接
|
||||
String ACTION_CONNECTION_RECOVERY = "com.farsunset.cim.CONNECTION_RECOVERY";
|
||||
|
Binary file not shown.
@ -62,7 +62,7 @@
|
||||
<receiver android:name="com.farsunset.ichat.example.receiver.CIMPushManagerReceiver">
|
||||
<intent-filter android:priority="0x7fffffff">
|
||||
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <!-- 网络变化广播 targetVersion 24之前 -->
|
||||
<action android:name="com.farsunset.cim.NETWORK_CHANAGED" /> <!-- 网络变化广播 targetVersion 24之后-->
|
||||
<action android:name="com.farsunset.cim.NETWORK_CHANGED" /> <!-- 网络变化广播 targetVersion 24之后-->
|
||||
<action android:name="com.farsunset.cim.MESSAGE_RECEIVED" /><!-- 消息广播action -->
|
||||
<action android:name="com.farsunset.cim.SENT_FAILED" /> <!-- 发送sendbody失败广播-->
|
||||
<action android:name="com.farsunset.cim.SENT_SUCCESSED" /> <!-- 发送sendbody成功广播 -->
|
||||
|
@ -25,7 +25,7 @@ import java.net.InetSocketAddress;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Semaphore;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@ -75,7 +75,7 @@ class CIMConnectorManager extends ChannelInboundHandlerAdapter{
|
||||
private EventLoopGroup loopGroup;
|
||||
private Channel channel;;
|
||||
private ExecutorService executor = Executors.newFixedThreadPool(1);
|
||||
private Semaphore semaphore = new Semaphore(1,true);
|
||||
private final AtomicBoolean CONNECTING_FLAG = new AtomicBoolean(false) ;
|
||||
|
||||
private Context context;
|
||||
|
||||
@ -144,10 +144,12 @@ class CIMConnectorManager extends ChannelInboundHandlerAdapter{
|
||||
return;
|
||||
}
|
||||
|
||||
if (isConnected() || !semaphore.tryAcquire()) {
|
||||
if (CONNECTING_FLAG.get() || isConnected()) {
|
||||
return;
|
||||
}
|
||||
|
||||
CONNECTING_FLAG.set(true);
|
||||
|
||||
if (bootstrap == null || loopGroup.isShutdown()) {
|
||||
makeNioBootstrap();
|
||||
}
|
||||
@ -161,7 +163,7 @@ class CIMConnectorManager extends ChannelInboundHandlerAdapter{
|
||||
|
||||
@Override
|
||||
public void operationComplete(ChannelFuture future) {
|
||||
semaphore.release();
|
||||
CONNECTING_FLAG.set(false);
|
||||
future.removeListener(this);
|
||||
if(!future.isSuccess() && future.cause() != null) {
|
||||
handleConnectFailure(future.cause(),remoteAddress);
|
||||
|
@ -96,7 +96,7 @@ public interface CIMConstant {
|
||||
String ACTION_REPLY_RECEIVED = "com.farsunset.cim.REPLY_RECEIVED";
|
||||
|
||||
// 网络变化广播
|
||||
String ACTION_NETWORK_CHANGED = "com.farsunset.cim.NETWORK_CHANAGED";
|
||||
String ACTION_NETWORK_CHANGED = "com.farsunset.cim.NETWORK_CHANGED";
|
||||
|
||||
|
||||
// 重试连接
|
||||
|
2
cim_for_netty/cim-client-android/.idea/misc.xml
generated
2
cim_for_netty/cim-client-android/.idea/misc.xml
generated
@ -5,7 +5,7 @@
|
||||
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
|
||||
</configurations>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
Binary file not shown.
@ -62,7 +62,7 @@
|
||||
<receiver android:name="com.farsunset.ichat.example.receiver.CIMPushManagerReceiver">
|
||||
<intent-filter android:priority="0x7fffffff">
|
||||
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <!-- 网络变化广播 targetVersion 24之前 -->
|
||||
<action android:name="com.farsunset.cim.NETWORK_CHANAGED" /> <!-- 网络变化广播 targetVersion 24之后-->
|
||||
<action android:name="com.farsunset.cim.NETWORK_CHANGED" /> <!-- 网络变化广播 targetVersion 24之后-->
|
||||
<action android:name="com.farsunset.cim.MESSAGE_RECEIVED" /><!-- 消息广播action -->
|
||||
<action android:name="com.farsunset.cim.SENT_FAILED" /> <!-- 发送sendbody失败广播-->
|
||||
<action android:name="com.farsunset.cim.SENT_SUCCESSED" /> <!-- 发送sendbody成功广播 -->
|
||||
|
Loading…
x
Reference in New Issue
Block a user