All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.quorum.tessera.server.websockets.WebSocketServer Maven / Gradle / Ivy

package com.quorum.tessera.server.websockets;

import com.jpmorgan.quorum.server.utils.ServerUtils;
import com.quorum.tessera.config.ServerConfig;
import com.quorum.tessera.server.TesseraServer;
import java.util.Objects;
import java.util.Set;
import javax.websocket.server.ServerContainer;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
public class WebSocketServer implements TesseraServer {

    private final Server server;

    private final ServerConfig serverConfig;
    
    private final Set> services;
    
    public WebSocketServer(ServerConfig serverConfig,Set> services) {
        this.serverConfig = Objects.requireNonNull(serverConfig);
        this.server = ServerUtils.buildWebServer(serverConfig);
        this.services = services;
    }
    
    @Override
    public void start() throws Exception {
        
        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        server.setHandler(context);
        
        ServerContainer websocketsContainer = WebSocketServerContainerInitializer.configureContext(context);
        
        for(Class service : services) {
            websocketsContainer.addEndpoint(service);
        }
        
        
        server.start();
    }

    @Override
    public void stop() throws Exception {
        server.stop();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy