This commit is contained in:
地平线
2015-10-19 14:46:14 +08:00
parent 2f5f971403
commit 715e379ece
2 changed files with 16 additions and 9 deletions

View File

@@ -67,6 +67,8 @@ public abstract class WebSocket {
Serializable groupid; Serializable groupid;
private final long createtime = System.currentTimeMillis();
private final Map<String, Object> attributes = new ConcurrentHashMap<>(); private final Map<String, Object> attributes = new ConcurrentHashMap<>();
protected WebSocket() { protected WebSocket() {
@@ -130,6 +132,10 @@ public abstract class WebSocket {
return send(new WebSocketPacket(FrameType.PONG, data)); return send(new WebSocketPacket(FrameType.PONG, data));
} }
public final long getCreatetime() {
return createtime;
}
/** /**
* 发送二进制消息 * 发送二进制消息
* <p> * <p>

View File

@@ -80,8 +80,8 @@ public class WebSocketRunner implements Runnable {
@Override @Override
public void completed(Integer count, Void attachment1) { public void completed(Integer count, Void attachment1) {
if (count < 1 && readBuffers.isEmpty()) { if (count < 1 && readBuffers.isEmpty()) {
if (debug) context.getLogger().log(Level.FINEST, "WebSocketRunner abort on read buffer count, force to close channel");
closeRunner(); closeRunner();
if (debug) context.getLogger().log(Level.FINEST, "WebSocketRunner abort on read buffer count, force to close channel, live " + (System.currentTimeMillis() - webSocket.getCreatetime()) / 1000 + " seconds");
return; return;
} }
if (readBuffer == null) return; if (readBuffer == null) return;
@@ -110,8 +110,8 @@ public class WebSocketRunner implements Runnable {
} }
} }
if (packet == null) { if (packet == null) {
if (debug) context.getLogger().log(Level.FINEST, "WebSocketRunner abort on decode WebSocketPacket, force to close channel");
failed(null, attachment1); failed(null, attachment1);
if (debug) context.getLogger().log(Level.FINEST, "WebSocketRunner abort on decode WebSocketPacket, force to close channel, live " + (System.currentTimeMillis() - webSocket.getCreatetime()) / 1000 + " seconds");
return; return;
} }
if (readBuffer != null) { if (readBuffer != null) {
@@ -134,7 +134,7 @@ public class WebSocketRunner implements Runnable {
} }
} catch (Throwable t) { } catch (Throwable t) {
closeRunner(); closeRunner();
if (debug) context.getLogger().log(Level.FINEST, "WebSocketRunner abort on read WebSocketPacket, force to close channel", t); if (debug) context.getLogger().log(Level.FINEST, "WebSocketRunner abort on read WebSocketPacket, force to close channel, live " + (System.currentTimeMillis() - webSocket.getCreatetime()) / 1000 + " seconds", t);
} }
} }
@@ -142,17 +142,17 @@ public class WebSocketRunner implements Runnable {
public void failed(Throwable exc, Void attachment2) { public void failed(Throwable exc, Void attachment2) {
closeRunner(); closeRunner();
if (exc != null) { if (exc != null) {
context.getLogger().log(Level.FINEST, "WebSocketRunner read WebSocketPacket failed, force to close channel", exc); context.getLogger().log(Level.FINEST, "WebSocketRunner read WebSocketPacket failed, force to close channel, live " + (System.currentTimeMillis() - webSocket.getCreatetime()) / 1000 + " seconds", exc);
} }
} }
}); });
} else { } else {
context.getLogger().log(Level.FINEST, "WebSocketRunner abort by AsyncConnection closed");
closeRunner(); closeRunner();
context.getLogger().log(Level.FINEST, "WebSocketRunner abort by AsyncConnection closed");
} }
} catch (Exception e) { } catch (Exception e) {
context.getLogger().log(Level.FINEST, "WebSocketRunner abort on read bytes from channel, force to close channel", e);
closeRunner(); closeRunner();
context.getLogger().log(Level.FINEST, "WebSocketRunner abort on read bytes from channel, force to close channel, live " + (System.currentTimeMillis() - webSocket.getCreatetime()) / 1000 + " seconds", e);
} }
} }
@@ -205,8 +205,8 @@ public class WebSocketRunner implements Runnable {
} }
} catch (NullPointerException e) { } catch (NullPointerException e) {
} catch (Exception e) { } catch (Exception e) {
context.getLogger().log(Level.WARNING, "WebSocket sendMessage abort on rewrite, force to close channel", e);
closeRunner(); closeRunner();
context.getLogger().log(Level.WARNING, "WebSocket sendMessage abort on rewrite, force to close channel, live " + (System.currentTimeMillis() - webSocket.getCreatetime()) / 1000 + " seconds", e);
} }
writing.set(false); writing.set(false);
} }
@@ -216,14 +216,15 @@ public class WebSocketRunner implements Runnable {
writing.set(false); writing.set(false);
closeRunner(); closeRunner();
if (exc != null) { if (exc != null) {
context.getLogger().log(Level.FINE, "WebSocket sendMessage on CompletionHandler failed, force to close channel", exc); context.getLogger().log(Level.FINE, "WebSocket sendMessage on CompletionHandler failed, force to close channel, live " + (System.currentTimeMillis() - webSocket.getCreatetime()) / 1000 + " seconds", exc);
} }
} }
}); });
return 0; return 0;
} catch (Exception t) { } catch (Exception t) {
writing.set(false); writing.set(false);
context.getLogger().log(Level.FINE, "WebSocket sendMessage abort, force to close channel", t); closeRunner();
context.getLogger().log(Level.FINE, "WebSocket sendMessage abort, force to close channel, live " + (System.currentTimeMillis() - webSocket.getCreatetime()) / 1000 + " seconds", t);
return RETCODE_SENDEXCEPTION; return RETCODE_SENDEXCEPTION;
} }
} }