diff --git a/src/org/redkale/net/http/HttpPrepareServlet.java b/src/org/redkale/net/http/HttpPrepareServlet.java index 7c9b65723..2f01a0992 100644 --- a/src/org/redkale/net/http/HttpPrepareServlet.java +++ b/src/org/redkale/net/http/HttpPrepareServlet.java @@ -36,6 +36,7 @@ public final class HttpPrepareServlet extends PrepareServlet { + if (s instanceof WebSocketServlet) ((WebSocketServlet) s).preInit(context, s._conf); s.init(context, s._conf); }); final WatchFactory watch = context.getWatchFactory(); @@ -131,6 +132,7 @@ public final class HttpPrepareServlet extends PrepareServlet { s.destroy(context, s._conf); + if (s instanceof WebSocketServlet) ((WebSocketServlet) s).postDestroy(context, s._conf); }); } diff --git a/src/org/redkale/net/http/WebSocketServlet.java b/src/org/redkale/net/http/WebSocketServlet.java index 05eba2633..234340fcb 100644 --- a/src/org/redkale/net/http/WebSocketServlet.java +++ b/src/org/redkale/net/http/WebSocketServlet.java @@ -33,7 +33,9 @@ import org.redkale.util.*; * * * - *

详情见: http://www.redkale.org + *

+ * 详情见: http://www.redkale.org + * * @author zhangjx */ public abstract class WebSocketServlet extends HttpServlet { @@ -62,8 +64,7 @@ public abstract class WebSocketServlet extends HttpServlet { protected WebSocketEngine engine; - @Override - public void init(HttpContext context, AnyValue conf) { + final void preInit(HttpContext context, AnyValue conf) { InetSocketAddress addr = context.getServerAddress(); this.engine = new WebSocketEngine(addr.getHostString() + ":" + addr.getPort() + "-[" + name() + "]", this.node, logger); this.node.putWebSocketEngine(engine); @@ -71,8 +72,7 @@ public abstract class WebSocketServlet extends HttpServlet { this.engine.init(conf); } - @Override - public void destroy(HttpContext context, AnyValue conf) { + final void postDestroy(HttpContext context, AnyValue conf) { this.node.destroy(conf); super.destroy(context, conf); engine.close();