Vertosphere: A Java WebSocket and HTTP server powered by the Atmosphere Framework and the Vert.x Framework.
The easiest way to get started with Vert.x is to download a sample and start it. Or look at the Javadoc. Samples are available here
% mvn package; jdebug -jar target/vertx-chat-xxx-fat.jar
Samples are the same as then one available in Atmosphere, e.g everything that works with Atmosphere works AS-IT-IS with the Vert.x module.
Download using Maven
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-vertx</artifactId>
<version>3.0.1</version>
</dependency>
For example, the famous multi-room Chat application in Atmosphere Can be run on top of Vert.x by doing:
public class VertxChatServer extends AbstractVerticle {
private static final Logger logger = LoggerFactory.getLogger(VertxChatServer.class);
private HttpServer httpServer;
private Vertx vertx;
@Override
public void init(Vertx vertx, Context context) {
this.vertx = vertx;
httpServer = vertx.createHttpServer();
}
@Override
public void start(Future<Void> future) throws Exception {
VertxAtmosphere.Builder b = new VertxAtmosphere.Builder();
b.resource(ChatRoom.class).httpServer(httpServer).url("/chat/:room")
.webroot("src/main/java/org/atmosphere/vertx/samples/webroot/")
.vertx(vertx)
.build();
httpServer.listen(8080);
}
@Override
public void stop(Future<Void> future) throws Exception {
httpServer.close();
}
}
Same for Jersey. You can run any Jersey resource like can be boostrapped by doing
public class VertxJerseyChat extends AbstractVerticle {
private HttpServer httpServer;
private Vertx vertx;
@Override
public void init(Vertx vertx, Context context) {
this.vertx = vertx;
httpServer = vertx.createHttpServer();
}
@Override
public void start(Future<Void> future) throws Exception {
VertxAtmosphere.Builder b = new VertxAtmosphere.Builder();
b.resource(ResourceChat.class).httpServer(httpServer).url("/chat/:room")
.webroot("src/main/webapp/")
.initParam(ApplicationConfig.WEBSOCKET_CONTENT_TYPE, "application/json")
.vertx(vertx)
.build();
httpServer.listen(8080);
}
@Override
public void stop(Future<Void> future) throws Exception {
httpServer.close();
}
}