Skip to content

Instantly share code, notes, and snippets.

View AlexeySoshin's full-sized avatar

Alexey Soshin AlexeySoshin

View GitHub Profile
public SQLConnection queryWithParams(String sql,
JsonArray params,
Handler<AsyncResult<ResultSet>> resultHandler) {
new JDBCQuery(vertx,
helper,
options,
ctx,
sql,
params).execute(conn,
statementsQueue,
@AlexeySoshin
AlexeySoshin / Vert.x and SQL query callback.java
Last active July 11, 2019 17:32
Example of INSERT statement with Vert.x and MySQL
conn.updateWithParams("insert into user (email, name, password) values (?, ?, ?)", params,
(r) -> {
if (r.succeeded()) {
System.out.println("Ok!");
}
else {
if (r.cause() instanceof MySQLException) {
MySQLException cause = (MySQLException) r.cause();
if (cause.errorMessage().errorCode() == 1062) {
// Duplicate key, ignore
public class WebSocks {
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
vertx.deployVerticle(new WebSocksServerVerticle(), (__) -> {
vertx.deployVerticle(new WebSocksClientVerticle());
});
}
}
private void restart(HttpClient client, int delay) {
client.close();
vertx.setTimer(TimeUnit.SECONDS.toMillis(delay), (__) -> {
startClient(vertx);
});
}
client.websocket(8080, "localhost", "/", (ctx) -> {
ctx.textMessageHandler((msg) -> {
System.out.println("Client " + msg);
ctx.writeTextMessage("pong");
}).exceptionHandler((e) -> {
System.out.println("Closed, restarting in 10 seconds");
restart(client, 5);
}).closeHandler((__) -> {
System.out.println("Closed, restarting in 10 seconds");
restart(client, 10);
class WebSocksClientVerticle extends AbstractVerticle {
@Override
public void start() {
startClient(vertx);
}
private void startClient(Vertx vertx) {
HttpClient client = vertx.createHttpClient();
client.websocket(8080, "localhost", "/", (ctx) -> {
server.websocketHandler((ctx) -> {
ctx.writeTextMessage("ping");
ctx.textMessageHandler((msg) -> {
System.out.println("Server " + msg);
if ((new Random()).nextInt(100) == 0) {
ctx.close();
}
else {
private void startServer(Vertx vertx) {
HttpServer server = vertx.createHttpServer();
server.websocketHandler((ctx) -> {
ctx.writeTextMessage("ping");
//...
}).listen(8080);
}
class WebSocksServerVerticle extends AbstractVerticle {
@Override
public void start() {
startServer(vertx);
}
private void startServer(Vertx vertx) {
//...
}
}
vertx.eventBus().registerDefaultCodec(BigSerializedObject.class,
new BigSerializedObjectCodec());