diff --git a/OCPP-J/src/main/java/eu/chargetime/ocpp/JSONConfiguration.java b/OCPP-J/src/main/java/eu/chargetime/ocpp/JSONConfiguration.java index 0c610d003..fed44d60a 100644 --- a/OCPP-J/src/main/java/eu/chargetime/ocpp/JSONConfiguration.java +++ b/OCPP-J/src/main/java/eu/chargetime/ocpp/JSONConfiguration.java @@ -37,6 +37,7 @@ public class JSONConfiguration { public static final String USERNAME_PARAMETER = "USERNAME"; public static final String PASSWORD_PARAMETER = "PASSWORD"; public static final String CONNECT_TIMEOUT_IN_MS_PARAMETER = "CONNECT_TIMEOUT_IN_MS"; + public static final String WEBSOCKET_WORKER_COUNT = "WEBSOCKET_WORKER_COUNT"; private final HashMap parameters = new HashMap<>(); diff --git a/OCPP-J/src/main/java/eu/chargetime/ocpp/WebSocketListener.java b/OCPP-J/src/main/java/eu/chargetime/ocpp/WebSocketListener.java index 03e6b9981..f98ca6ece 100644 --- a/OCPP-J/src/main/java/eu/chargetime/ocpp/WebSocketListener.java +++ b/OCPP-J/src/main/java/eu/chargetime/ocpp/WebSocketListener.java @@ -48,6 +48,7 @@ of this software and associated documentation files (the "Software"), to deal public class WebSocketListener implements Listener { private static final Logger logger = LoggerFactory.getLogger(WebSocketListener.class); + private static final int DEFAULT_WEBSOCKET_WORKER_COUNT = 4; private static final int TIMEOUT_IN_MILLIS = 10000; private static final int OCPPJ_CP_MIN_PASSWORD_LENGTH = 16; @@ -78,7 +79,10 @@ public WebSocketListener(ISessionFactory sessionFactory, Draft... drafts) { @Override public void open(String hostname, int port, ListenerEvents handler) { server = - new WebSocketServer(new InetSocketAddress(hostname, port), drafts) { + new WebSocketServer( + new InetSocketAddress(hostname, port), + configuration.getParameter(JSONConfiguration.WEBSOCKET_WORKER_COUNT, DEFAULT_WEBSOCKET_WORKER_COUNT), + drafts) { @Override public void onOpen(WebSocket webSocket, ClientHandshake clientHandshake) { logger.debug(