import io.activej.launchers.rpc.RpcServerLauncher; import io.activej.config.Config; import io.activej.inject.annotation.Inject; import io.activej.promise.Promise; import io.activej.rpc.client.RpcClient; import io.activej.rpc.server.RpcServer; import io.activej.serializer.SerializerBuilder; public class RpcExample { public interface Calculator { Promise<Integer> add(int a, int b); } public static class CalculatorImpl implements Calculator { @Override public Promise<Integer> add(int a, int b) { Promise.ofBlockingCallable(() -> a + b); } } public static void main(String[] args) throws Exception { RpcServer server = RpcServer.create() .withMessageSerializer(SerializerBuilder.createObjectSerializer()) .withHandler(Calculator.class, new CalculatorImpl()) .build(); server.listen(); RpcClient client = RpcClient.create() .withMessageSerializer(SerializerBuilder.createObjectSerializer()) .withMessageTypes(Calculator.class) .withAddress("localhost", 5353) .build(); Calculator calculator = client.getInstance(Calculator.class); Promise<Integer> result = calculator.add(2, 3); result.whenResult(System.out::println); client.close(); server.close(); } }


上一篇:
下一篇:
切换中文