in tchannel-example/src/main/java/com/uber/tchannel/basic/AsyncRequest.java [90:133]
protected static TChannel createServer() throws Exception {
// create TChannel
TChannel tchannel = new TChannel.Builder("server")
.setServerHost(InetAddress.getByName(null))
.setServerPort(8888)
.build();
// create sub channel to register the service and endpoint handler
tchannel.makeSubChannel("server")
.register("pong", new RawRequestHandler() {
private int count = 0;
@Override
public RawResponse handleImpl(RawRequest request) {
System.out.println(String.format("Request received: header: %s, body: %s",
request.getHeader(),
request.getBody()));
count++;
switch (count) {
case 1:
return new RawResponse.Builder(request)
.setTransportHeaders(request.getTransportHeaders())
.setHeader("Polo")
.setBody("Pong!")
.build();
case 2:
return new RawResponse.Builder(request)
.setTransportHeaders(request.getTransportHeaders())
.setResponseCode(ResponseCode.Error)
.setHeader("Polo")
.setBody("I feel bad ...")
.build();
default:
throw new UnsupportedOperationException("I feel very bad!");
}
}
});
tchannel.listen();
return tchannel;
}