This commit is contained in:
@@ -8,7 +8,6 @@ package com.wentch.redkale.net.http;
|
|||||||
import com.wentch.redkale.net.AsyncConnection;
|
import com.wentch.redkale.net.AsyncConnection;
|
||||||
import com.wentch.redkale.net.Context;
|
import com.wentch.redkale.net.Context;
|
||||||
import com.wentch.redkale.net.http.WebSocketPacket.PacketType;
|
import com.wentch.redkale.net.http.WebSocketPacket.PacketType;
|
||||||
import com.wentch.redkale.service.*;
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.channels.*;
|
import java.nio.channels.*;
|
||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
@@ -30,8 +29,6 @@ public class WebSocketRunner implements Runnable {
|
|||||||
|
|
||||||
protected final Context context;
|
protected final Context context;
|
||||||
|
|
||||||
protected final WebSocketNodeService nodeService;
|
|
||||||
|
|
||||||
private ByteBuffer readBuffer;
|
private ByteBuffer readBuffer;
|
||||||
|
|
||||||
private ByteBuffer writeBuffer;
|
private ByteBuffer writeBuffer;
|
||||||
@@ -44,9 +41,8 @@ public class WebSocketRunner implements Runnable {
|
|||||||
|
|
||||||
private final BlockingQueue<byte[]> queue = new ArrayBlockingQueue(1024);
|
private final BlockingQueue<byte[]> queue = new ArrayBlockingQueue(1024);
|
||||||
|
|
||||||
public WebSocketRunner(Context context, WebSocketNodeService nodeService, WebSocket webSocket, AsyncConnection channel) {
|
public WebSocketRunner(Context context, WebSocket webSocket, AsyncConnection channel) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.nodeService = nodeService;
|
|
||||||
this.engine = webSocket.engine;
|
this.engine = webSocket.engine;
|
||||||
this.webSocket = webSocket;
|
this.webSocket = webSocket;
|
||||||
this.channel = channel;
|
this.channel = channel;
|
||||||
@@ -61,7 +57,7 @@ public class WebSocketRunner implements Runnable {
|
|||||||
public void run() {
|
public void run() {
|
||||||
final boolean debug = this.coder.debugable;
|
final boolean debug = this.coder.debugable;
|
||||||
try {
|
try {
|
||||||
if (nodeService != null) nodeService.connectSelf(webSocket.groupid);
|
if (webSocket.nodeService != null) webSocket.nodeService.connectSelf(webSocket.groupid);
|
||||||
webSocket.onConnected();
|
webSocket.onConnected();
|
||||||
channel.setReadTimeoutSecond(300); //读取超时5分钟
|
channel.setReadTimeoutSecond(300); //读取超时5分钟
|
||||||
if (channel.isOpen()) {
|
if (channel.isOpen()) {
|
||||||
@@ -181,9 +177,9 @@ public class WebSocketRunner implements Runnable {
|
|||||||
readBuffer = null;
|
readBuffer = null;
|
||||||
writeBuffer = null;
|
writeBuffer = null;
|
||||||
engine.remove(webSocket);
|
engine.remove(webSocket);
|
||||||
if (nodeService != null) {
|
if (webSocket.nodeService != null) {
|
||||||
WebSocketGroup group = webSocket.getWebSocketGroup();
|
WebSocketGroup group = webSocket.getWebSocketGroup();
|
||||||
if (group == null || group.isEmpty()) nodeService.disconnectSelf(webSocket.groupid);
|
if (group == null || group.isEmpty()) webSocket.nodeService.disconnectSelf(webSocket.groupid);
|
||||||
}
|
}
|
||||||
webSocket.onClose(0, null);
|
webSocket.onClose(0, null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ public abstract class WebSocketServlet extends HttpServlet {
|
|||||||
}
|
}
|
||||||
webSocket.groupid = groupid;
|
webSocket.groupid = groupid;
|
||||||
engine.add(webSocket);
|
engine.add(webSocket);
|
||||||
context.submit(new WebSocketRunner(context, nodeService, webSocket, response.removeChannel()));
|
context.submit(new WebSocketRunner(context, webSocket, response.removeChannel()));
|
||||||
response.finish(true);
|
response.finish(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user