First Java App
The following is a simple example of API usage and shows a Java application that connects to the platform, subscribes to a topic and publishes a message.
The example uses Flexible messaging so that it can send a Map without needing to define a schema.
Before Running
The application must already be created and permissioned in Key Access.
Example
FirstJavaApp.java
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import trading.keysquare.api.message.Messages;
import trading.keysquare.api.session.KeySession;
import trading.keysquare.api.session.KeySessionContext;
import trading.keysquare.api.session.KeySessionFactory;
import trading.keysquare.api.topic.Topic;
import trading.keysquare.api.topic.Topics;
import trading.keysquare.model.core.SubscriptionType;
import trading.keysquare.model.core.TransportMode;
public final class FirstJavaApp {
public static void main(String[] args) {
KeySessionContext context = new KeySessionContext();
context.setApplicationName("sample");
context.setKeyAccessUrl("https://<key-access-host>:6800");
context.setApiKey("<api-key>");
context.setTransportMode(TransportMode.TCP);
KeySession session = KeySessionFactory.create(context);
session.routing().flexible(Map.class, message -> {
System.out.println(message.payload());
}, Optional.empty());
session.start();
Topic topic = Topics.create("sample", "hello", "first-message");
session.subscribe(SubscriptionType.LIVE, count -> {}, topic);
Map<String, Object> map = new HashMap<>();
map.put("text", "Hello from KeySquare");
session.publish(Messages.flexible(Map.class).topic(topic).payload(map));
}
}
This shows how flexible messages can be used for quick prototyping without the need for a formal schema.