Commit 7df562e2 authored by sheteng's avatar sheteng

链接超时错误码

parent e9e98975
...@@ -119,12 +119,32 @@ public class CCIMClient { ...@@ -119,12 +119,32 @@ public class CCIMClient {
} }
@Override @Override
public void onSocketDisconnection() { public void onSocketDisconnection(int code) {
isConnected = false; isConnected = false;
logger.info("disconnection"); logger.info("disconnection");
resultCallback.onSocketDisconnection(); resultCallback.onSocketDisconnection(code);
} }
}); });
initCachePath(context);
}
/**
* 初始化缓存目录
*
* @param context
*/
private void initCachePath(Context context) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
cachePath = context.getExternalFilesDir("cache").getAbsolutePath();
} else {
cachePath = context.getCacheDir().getAbsolutePath();
}
File fileDir = new File(cachePath);
boolean b = !fileDir.exists();
if (b) {
fileDir.mkdirs();
}
} }
......
...@@ -7,7 +7,7 @@ public interface MessageListener { ...@@ -7,7 +7,7 @@ public interface MessageListener {
} }
default void onServerDisConnect(){ default void onServerDisConnect(int code){
} }
void onMessageListener(Chat.ChatResponseMessage data); void onMessageListener(Chat.ChatResponseMessage data);
......
...@@ -5,5 +5,5 @@ import ccim.protocol.Chat; ...@@ -5,5 +5,5 @@ import ccim.protocol.Chat;
public interface OnClientConnectListener { public interface OnClientConnectListener {
void onSocketConnection(Chat.ConnectResponse.ClientConfig clientConfig); void onSocketConnection(Chat.ConnectResponse.ClientConfig clientConfig);
void onSocketReConnection(); void onSocketReConnection();
default void onSocketDisconnection(){}; default void onSocketDisconnection(int code){};
} }
...@@ -2,5 +2,5 @@ package com.ccwangluo.ccim.listener; ...@@ -2,5 +2,5 @@ package com.ccwangluo.ccim.listener;
public interface OnConnectListener { public interface OnConnectListener {
void onSocketConnection(); void onSocketConnection();
void onSocketDisconnection(); void onSocketDisconnection(int errorCode);
} }
...@@ -11,6 +11,7 @@ import com.ccwangluo.ccim.listener.OnClientConnectListener; ...@@ -11,6 +11,7 @@ import com.ccwangluo.ccim.listener.OnClientConnectListener;
import com.ccwangluo.ccim.listener.ResultEventCallback; import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.socket.NettyChatClient; import com.ccwangluo.ccim.socket.NettyChatClient;
import com.ccwangluo.ccim.socket.SocketClient; import com.ccwangluo.ccim.socket.SocketClient;
import com.ccwangluo.ccim.util.ErrorCode;
import com.google.protobuf.util.JsonFormat; import com.google.protobuf.util.JsonFormat;
import java.util.logging.Logger; import java.util.logging.Logger;
...@@ -65,7 +66,7 @@ public class SocketManager { ...@@ -65,7 +66,7 @@ public class SocketManager {
@Override @Override
public void onFailed(int errorCode) { public void onFailed(int errorCode) {
onConnectListener.onSocketDisconnection(); onConnectListener.onSocketDisconnection(errorCode);
disConnect(); disConnect();
} }
}); });
...@@ -83,9 +84,13 @@ public class SocketManager { ...@@ -83,9 +84,13 @@ public class SocketManager {
} }
@Override @Override
public void onServerDisConnect() { public void onServerDisConnect(int code) {
if (code == ErrorCode.NET_ERROR){
onConnectListener.onSocketDisconnection(code);
} else {
onConnectListener.onSocketReConnection(); onConnectListener.onSocketReConnection();
} }
}
@Override @Override
public void onMessageListener(Chat.ChatResponseMessage data) { public void onMessageListener(Chat.ChatResponseMessage data) {
...@@ -122,6 +127,7 @@ public class SocketManager { ...@@ -122,6 +127,7 @@ public class SocketManager {
e.printStackTrace(); e.printStackTrace();
} }
} }
}); });
} }
......
...@@ -7,6 +7,7 @@ import android.net.NetworkInfo; ...@@ -7,6 +7,7 @@ import android.net.NetworkInfo;
import com.ccwangluo.ccim.CCIMClient; import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.MessageListener; import com.ccwangluo.ccim.listener.MessageListener;
import com.ccwangluo.ccim.util.ErrorCode;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
...@@ -33,23 +34,18 @@ import io.netty.handler.codec.protobuf.ProtobufEncoder; ...@@ -33,23 +34,18 @@ import io.netty.handler.codec.protobuf.ProtobufEncoder;
public class NettyChatClient implements SocketClient { public class NettyChatClient implements SocketClient {
private final Logger logger = Logger.getLogger(CCIMClient.class.getName()); private final Logger logger = Logger.getLogger(CCIMClient.class.getName());
private MessageListener msglitener; private MessageListener msglitener;
private ChannelFuture channelFuture; private ChannelFuture channelFuture;
private final String ip; private final String ip;
private final int port; private final int port;
private Bootstrap bootstrap; private Bootstrap bootstrap;
private Context context; private Context context;
EventLoopGroup group = new NioEventLoopGroup(); EventLoopGroup group = new NioEventLoopGroup();
private ExecutorService executor = Executors.newSingleThreadExecutor(); private ExecutorService executor = Executors.newSingleThreadExecutor();
ScheduledExecutorService timerExcutor; ScheduledExecutorService timerExcutor;
public NettyChatClient(Context context, String ip, int port) { public NettyChatClient(Context context, String ip, int port) {
this.ip = ip; this.ip = ip;
this.port = port; this.port = port;
...@@ -90,6 +86,9 @@ public class NettyChatClient implements SocketClient { ...@@ -90,6 +86,9 @@ public class NettyChatClient implements SocketClient {
channelFuture = bootstrap.connect(ip, port).sync(); channelFuture = bootstrap.connect(ip, port).sync();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
if (msglitener != null){
msglitener.onServerDisConnect(ErrorCode.NET_ERROR);
}
} }
}); });
} }
...@@ -185,7 +184,7 @@ public class NettyChatClient implements SocketClient { ...@@ -185,7 +184,7 @@ public class NettyChatClient implements SocketClient {
public void channelInactive(ChannelHandlerContext ctx) throws Exception { public void channelInactive(ChannelHandlerContext ctx) throws Exception {
super.channelInactive(ctx); super.channelInactive(ctx);
logger.info("channelInactive"); logger.info("channelInactive");
msglitener.onServerDisConnect(); msglitener.onServerDisConnect(ErrorCode.NET_TIME_OUT);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment