This commit is contained in:
地平线
2015-06-23 15:55:06 +08:00
parent 0ff6d7759b
commit 38ca86bed6
2 changed files with 11 additions and 5 deletions

View File

@@ -15,14 +15,21 @@ import java.util.concurrent.*;
*/
public final class WebSocketEngine {
private String engineid;
private static final Map<String, WebSocketEngine> globals = new ConcurrentHashMap<>();
private final String engineid;
private final Map<Serializable, WebSocketGroup> containers = new ConcurrentHashMap<>();
WebSocketEngine() {
static WebSocketEngine create(String engineid) {
WebSocketEngine engine = globals.get(engineid);
if (engine != null) return engine;
engine = new WebSocketEngine(engineid);
globals.put(engineid, engine);
return engine;
}
void setEngineid(String engineid) {
private WebSocketEngine(String engineid) {
this.engineid = engineid;
}

View File

@@ -37,11 +37,10 @@ public abstract class WebSocketServlet extends HttpServlet {
@Resource
private WebSocketNodeService nodeService;
protected final WebSocketEngine engine = new WebSocketEngine();
protected final WebSocketEngine engine = WebSocketEngine.create(this.getClass().getName() + "-" + Arrays.toString(this.getClass().getAnnotation(WebServlet.class).value()));
@Override
public void init(Context context, AnyValue conf) {
engine.setEngineid(this.getClass().getName() + "-" + Arrays.toString(this.getClass().getAnnotation(WebServlet.class).value()));
if (nodeService != null) {
nodeService.addWebSocketEngine(engine);
nodeService.initUserNodes();