Friday, October 9, 2020

What is Cettia.io

 


What is Cettia.io 


Cettia is a full-featured real-time web framework for Java that you can use to exchange events between servers and web clients in real-time. Cettia works with any web frameworks on the Java Virtual Machine, provides reliable full duplex message channels, enables elegant patterns which make it fast and enjoyable to build real-time web applications, and scales horizontally using messaging passing.


Cettia is designed not just to run on any web framework seamlessly on the JVM but also not to degrade the underlying framework's performance. Almost all popular web frameworks in Java are supported: Java EE (Servlet and Java API for WebSocket), Spring WebFlux, Spring Web MVC, Play Framework, Vert.x, Grizzly, Netty, Atmosphere, and so on.


Plug transport servers into your favorite web framework.


io.cettia.Server server = new DefaultServer();

io.cettia.transport.http.HttpTransportServer hts = new HttpTransportServer().ontransport(server);

io.cettia.transport.websocket.WebSocketTransportServer wts = new WebSocketTransportServer().ontransport(server);


@WebListener

public class CettiaInitializer implements ServletContextListener {

  @Override

  public void contextInitialized(ServletContextEvent event) {

    ServletContext context = event.getServletContext();

    Servlet asityServlet = new AsityServlet().onhttp(hts);

    ServletRegistration.Dynamic reg = context.addServlet(AsityServlet.class.getName(), asityServlet);

    reg.setAsyncSupported(true);

    reg.addMapping("/cettia");


    ServerContainer container = (ServerContainer) context.getAttribute(ServerContainer.class.getName());

    ServerEndpointConfig.Configurator configurator = new ServerEndpointConfig.Configurator() {

      public <T> T getEndpointInstance(Class<T> endpointClass) {

        AsityServerEndpoint asityServerEndpoint = new AsityServerEndpoint().onwebsocket(wts);

        return endpointClass.cast(asityServerEndpoint);

      }

    };

    try {

      container.addEndpoint(ServerEndpointConfig.Builder.create(AsityServerEndpoint.class, "/cettia").configurator(configurator).build());

    } catch (DeploymentException e) {

      throw new RuntimeException(e);

    }

  }


  @Override

  public void contextDestroyed(ServletContextEvent sce) {}

}




References:

https://cettia.io/


No comments:

Post a Comment