This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user