From d5365af37399b19bb7ae28f0208b37b5bb24599f Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Tue, 16 Jan 2018 11:49:58 +0800 Subject: [PATCH] --- src/org/redkale/net/http/WebSocketRunner.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/org/redkale/net/http/WebSocketRunner.java b/src/org/redkale/net/http/WebSocketRunner.java index 8341eb31f..382850277 100644 --- a/src/org/redkale/net/http/WebSocketRunner.java +++ b/src/org/redkale/net/http/WebSocketRunner.java @@ -276,6 +276,16 @@ class WebSocketRunner implements Runnable { channel.write(buffers, buffers, this); } else { writing.set(false); + if (writing.get()) { //刚好进入writing.getAndSet(true)后 + entry = queue.poll(); + if (entry != null) { + writing.set(true); + future = entry.future; + ByteBuffer[] buffers = entry.packet.sendBuffers != null ? entry.packet.duplicateSendBuffers() : entry.packet.encode(context.getBufferSupplier()); + lastSendTime = System.currentTimeMillis(); + channel.write(buffers, buffers, this); + } + } } } catch (Exception e) { context.getLogger().log(Level.WARNING, "WebSocket sendMessage abort on rewrite, force to close channel, live " + (System.currentTimeMillis() - webSocket.getCreatetime()) / 1000 + " seconds", e);