Server SDKs
Java
Use the Java server SDK for synchronous or asynchronous publishing, auth, state queries, and push.
Install
<dependency>
<groupId>io.sockudo</groupId>
<artifactId>sockudo-http-java</artifactId>
<version>1.0.0</version>
</dependency>implementation("io.sockudo:sockudo-http-java:1.0.0")Configure
Sockudo sockudo = new Sockudo("app-id", "app-key", "app-secret");
sockudo.setHost("127.0.0.1");
sockudo.setPort(6001);
sockudo.setEncrypted(false);Publish
Map<String, Object> data = new HashMap<>();
data.put("id", "ord_123");
TriggerOptions options = new TriggerOptions();
options.setIdempotencyKey("order-created-ord_123");
sockudo.trigger("orders", "order.created", data, options);Auth
String privateAuth = sockudo.authenticate(socketId, "private-orders");
Map<String, String> userInfo = new HashMap<>();
userInfo.put("name", "Ada");
String presenceAuth = sockudo.authenticate(
socketId,
"presence-lobby",
new PresenceUser("user-42", userInfo)
);Async
SockudoAsync async = new SockudoAsync("app-id", "app-key", "app-secret");
async.setHost("127.0.0.1");
async.setPort(6001);
CompletableFuture<Result> result =
async.trigger("orders", "order.created", Collections.singletonMap("id", "ord_123"));Push notifications
Map<String, Object> device = new HashMap<>();
device.put("deviceId", "android-device-1");
device.put("clientId", "user-42");
device.put("platform", "fcm");
device.put("providerToken", "provider-token");
sockudo.activateDevice(device);
Map<String, Object> subscription = new HashMap<>();
subscription.put("deviceId", "android-device-1");
subscription.put("clientId", "user-42");
subscription.put("channel", "orders");
sockudo.upsertChannelPushSubscription(subscription);
Map<String, Object> payload = new HashMap<>();
payload.put("title", "Order updated");
payload.put("body", "Order ord_123 is packed");
Map<String, Object> request = new HashMap<>();
request.put("recipients", List.of(Map.of("type", "channel", "channel", "orders")));
request.put("payload", payload);
request.put("idempotency_key", "push-order-ord_123-packed");
sockudo.publishPush(request);Push helpers set sync to false and include the required Sockudo push capability header.