diff --git a/src/main/java/com/corundumstudio/socketio/Configuration.java b/src/main/java/com/corundumstudio/socketio/Configuration.java index e996cb75..76f94c01 100644 --- a/src/main/java/com/corundumstudio/socketio/Configuration.java +++ b/src/main/java/com/corundumstudio/socketio/Configuration.java @@ -18,6 +18,7 @@ import java.io.InputStream; import java.util.Arrays; import java.util.List; +import java.util.concurrent.Executor; import com.corundumstudio.socketio.handler.SuccessAuthorizationListener; import com.corundumstudio.socketio.listener.DefaultExceptionListener; @@ -82,6 +83,8 @@ public class Configuration { private boolean websocketCompression = true; + private Executor executor = null; + public Configuration() { } @@ -146,6 +149,8 @@ public Configuration() { setHttpCompression(conf.isHttpCompression()); setWebsocketCompression(conf.isWebsocketCompression()); + + setExecutor(conf.getExecutor()); } public JsonSupport getJsonSupport() { @@ -561,4 +566,11 @@ public boolean isWebsocketCompression() { return websocketCompression; } + public Executor getExecutor() { + return executor; + } + + public void setExecutor(Executor executor) { + this.executor = executor; + } } diff --git a/src/main/java/com/corundumstudio/socketio/SocketIOServer.java b/src/main/java/com/corundumstudio/socketio/SocketIOServer.java index 09cc7b0f..88de5aca 100644 --- a/src/main/java/com/corundumstudio/socketio/SocketIOServer.java +++ b/src/main/java/com/corundumstudio/socketio/SocketIOServer.java @@ -15,6 +15,21 @@ */ package com.corundumstudio.socketio; +import com.corundumstudio.socketio.listener.ClientListeners; +import com.corundumstudio.socketio.listener.ConnectListener; +import com.corundumstudio.socketio.listener.DataListener; +import com.corundumstudio.socketio.listener.DisconnectListener; +import com.corundumstudio.socketio.listener.MultiTypeEventListener; +import com.corundumstudio.socketio.namespace.Namespace; +import com.corundumstudio.socketio.namespace.NamespacesHub; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.InetSocketAddress; +import java.util.Collection; +import java.util.UUID; + import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; @@ -27,21 +42,6 @@ import io.netty.util.concurrent.Future; import io.netty.util.concurrent.FutureListener; -import java.net.InetSocketAddress; -import java.util.Collection; -import java.util.UUID; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.corundumstudio.socketio.listener.ClientListeners; -import com.corundumstudio.socketio.listener.ConnectListener; -import com.corundumstudio.socketio.listener.DataListener; -import com.corundumstudio.socketio.listener.DisconnectListener; -import com.corundumstudio.socketio.listener.MultiTypeEventListener; -import com.corundumstudio.socketio.namespace.Namespace; -import com.corundumstudio.socketio.namespace.NamespacesHub; - /** * Fully thread-safe. * @@ -179,11 +179,11 @@ protected void applyConnectionOptions(ServerBootstrap bootstrap) { protected void initGroups() { if (configCopy.isUseLinuxNativeEpoll()) { - bossGroup = new EpollEventLoopGroup(configCopy.getBossThreads()); - workerGroup = new EpollEventLoopGroup(configCopy.getWorkerThreads()); + bossGroup = new EpollEventLoopGroup(configCopy.getBossThreads(), configCopy.getExecutor()); + workerGroup = new EpollEventLoopGroup(configCopy.getWorkerThreads(), configCopy.getExecutor()); } else { - bossGroup = new NioEventLoopGroup(configCopy.getBossThreads()); - workerGroup = new NioEventLoopGroup(configCopy.getWorkerThreads()); + bossGroup = new NioEventLoopGroup(configCopy.getBossThreads(), configCopy.getExecutor()); + workerGroup = new NioEventLoopGroup(configCopy.getWorkerThreads(), configCopy.getExecutor()); } }