public interface RpcChannel
RpcChannelrepresents a communication line to a
Servicewhich can be used to call that
Service's methods. The
Servicemay be running on another machine. Normally, you should not call an
RpcChanneldirectly, but instead construct a stub
Servicewrapping it. Example:
RpcChannel channel = rpcImpl.newChannel("remotehost.example.com:1234"); RpcController controller = rpcImpl.newController(); MyService service = MyService.newStub(channel); service.myMethod(controller, request, callback);
Starting with version 2.3.0, RPC implementations should not try to build on this, but should instead provide code generator plugins which generate code specific to the particular RPC implementation. This way the generated code can be more appropriate for the implementation in use and can avoid unnecessary layers of indirection.
void callMethod(Descriptors.MethodDescriptor method, RpcController controller, Message request, Message responsePrototype, RpcCallback<Message> done)
Service.callMethod()with one important difference: the caller decides the types of the
Messageobjects, not the callee. The request may be of any type as long as
request.getDescriptor() == method.getInputType(). The response passed to the callback will be of the same type as
responsePrototype(which must have
getDescriptor() == method.getOutputType()).