Skip to content

Commit f752273

Browse files
committed
adding RPC server demo
1 parent d958011 commit f752273

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package samples.rpc;
2+
3+
import realtime.pubsub.*;
4+
5+
import java.util.Date;
6+
import java.util.Map;
7+
import java.util.logging.Level;
8+
import java.util.logging.Logger;
9+
10+
public class Server {
11+
12+
public static void main(String[] args) throws Exception {
13+
var logger = Logger.getLogger(samples.ClientDemoMinimal.class.getName());
14+
15+
var accessToken = System.getenv("ACCESS_TOKEN");
16+
var appId = System.getenv("APP_ID");
17+
18+
var config = new RealtimeClientConfig(() -> String.format("wss://genesis.r7.21no.de/apps/%s?access_token=%s", appId, accessToken));
19+
var client = new RealtimeClient(config);
20+
21+
client.on("session.started", (Object... params) -> {
22+
client.subscribeRemoteTopic("secure/inbound");
23+
});
24+
25+
client.on("secure/inbound.presence", (Object... eventArgs) -> {
26+
var messageEvent = (IncomingMessage) eventArgs[0];
27+
28+
var presenceMessage = PresenceMessage.from(messageEvent);
29+
if (presenceMessage.getStatus() == PresenceStatus.CONNECTED) {
30+
logger.info("Client " + presenceMessage.getConnectionId() + " connected...");
31+
} else if (presenceMessage.getStatus() == PresenceStatus.DISCONNECTED) {
32+
logger.info("Client " + presenceMessage.getConnectionId() + " disconnected...");
33+
}
34+
});
35+
36+
client.on("secure/inbound.gettime", (Object... eventArgs) -> {
37+
var replyFn = (ReplyFunction) eventArgs[1];
38+
39+
logger.info("Responding to gettime request...");
40+
41+
// Send a reply
42+
try {
43+
var waitFor = replyFn.reply(Map.of("time", new Date()), "ok", false);
44+
waitFor.waitForAck().thenAccept(ack -> logger.info("Acknowledgment received."));
45+
} catch (Exception e) {
46+
logger.log(Level.SEVERE, "Failed to send reply", e);
47+
}
48+
});
49+
50+
client.connect();
51+
}
52+
}

0 commit comments

Comments
 (0)