Intercom is a simple library that aims to simplify communication between your services.
- Apache Maven
- Java Version 9
-
Add the intercom dependency to your
pom.xml
... <dependencies> <dependency> <groupId>de.maximilianbrandau</groupId> <artifactId>intercom</artifactId> <version>0.0.1</version> </dependency> </dependencies> ...
-
Create an
IntercomCodec
import de.maximilianbrandau.intercom.codec.IntercomByteBuf; import de.maximilianbrandau.intercom.codec.IntercomCodec;
IntercomCodec<Integer[]> integerIntercomCodec = new IntercomCodec<>() { @Override public void encode(Integer[] data, IntercomByteBuf buffer) { buffer.writeVarInt(data.length); for (Integer i : data) buffer.writeVarInt(i); } @Override public Integer[] decode(IntercomByteBuf buffer) { Integer[] data = new Integer[buffer.readVarInt()]; for (int i = 0; i < data.length; i++) { data[i] = buffer.readVarInt(); } return data; } };
-
Create an
IntercomServer
import de.maximilianbrandau.intercom.server.IntercomServer;
IntercomServer<Integer[]> server = Intercom.server(8080).build(integerIntercomCodec); // Start the server with your codec server.addHandler("sum", (request, response) -> { int sum = 0; for (Integer i : request.getData()) sum += i; // Sum up all values in the integer array response.setData(new Integer[]{sum}); // Set the result response.end(); // End the response });
-
Create an
IntercomClient
import de.maximilianbrandau.intercom.client.IntercomClient;
IntercomClient<Integer[]> client = Intercom.client("localhost", 8080).build(integerIntercomCodec); client.request("sum").data(new Integer[]{5, 7, 9}).send() // Send the request .thenAccept(response -> System.out.println(response.getData()[0])).get(); // Print the response
-
Close client and server once you're done
client.close(); server.close();