use of org.jocean.http.rosa.SignalClient.Attachment in project jocean-http by isdom.
the class SignalTest method main.
/**
* @param args
* @throws Exception
* @throws Exception
*/
public static void main(String[] args) throws Exception {
final TestChannelPool pool = new TestChannelPool(1);
final HttpClient httpClient = new DefaultHttpClient(new AbstractChannelCreator() {
@Override
protected void initializeBootstrap(final Bootstrap bootstrap) {
bootstrap.group(new NioEventLoopGroup(1)).channel(NioSocketChannel.class);
}
}, pool, ENABLE_LOGGING, ENABLE_COMPRESSOR);
final DefaultSignalClient client = new DefaultSignalClient(httpClient);
client.registerRequestType(FetchPatientsRequest.class, FetchPatientsResponse.class, new URI("http://jumpbox.medtap.cn:8888"));
client.registerRequestType(QueryMyPatientsForDoctorRequest.class, QueryMyPatientsForDoctorResponse.class, new URI("http://api.iplusmed.com"));
client.registerRequestType(AddMultiMediasToJourneyRequest.class, AddMultiMediasToJourneyResponse.class, new URI("http://jumpbox.medtap.cn:8888"));
{
final QueryMyPatientsForDoctorRequest req = new QueryMyPatientsForDoctorRequest();
req.setDoctorId("8510");
((SignalClient) client).interaction().request(req).<QueryMyPatientsForDoctorResponse>build().subscribe(new Subscriber<QueryMyPatientsForDoctorResponse>() {
@Override
public void onCompleted() {
LOG.debug("FetchPatientsRequest: onCompleted.");
}
@Override
public void onError(Throwable e) {
LOG.debug("FetchPatientsRequest: onError: {}", ExceptionUtils.exception2detail(e));
}
@Override
public void onNext(final QueryMyPatientsForDoctorResponse response) {
LOG.debug("QueryMyPatientsForDoctorRequest: onNext: {}", response);
}
});
}
/*
final CountDownLatch latch = new CountDownLatch(1);
{
final FetchPatientsRequest req = new FetchPatientsRequest();
req.setAccountId("2");
client.defineInteraction(req)
.compose(RxNettys.<FetchPatientsResponse>filterProgress())
.subscribe(new Subscriber<FetchPatientsResponse>() {
@Override
public void onCompleted() {
latch.countDown();
LOG.debug("FetchPatientsRequest: onCompleted.");
}
@Override
public void onError(Throwable e) {
latch.countDown();
LOG.debug("FetchPatientsRequest: onError: {}", ExceptionUtils.exception2detail(e));
}
@Override
public void onNext(final FetchPatientsResponse response) {
LOG.debug("FetchPatientsRequest: onNext: {}", response);
}});
}
latch.await();
pool.awaitRecycleChannels();
*/
{
final HttpUtil.TrafficCounterFeature trafficCounter = HttpUtil.buildTrafficCounterFeature();
final HttpUtil.PayloadCounterFeature payloadCounter = HttpUtil.buildPayloadCounterFeature();
final AddMultiMediasToJourneyRequest req = new AddMultiMediasToJourneyRequest();
req.setCaseId("120");
req.setJourneyId("1");
final Subscription subscription = client.interaction().request(req).feature(// new Attachment("/Users/isdom/Desktop/997df3df73797e91dea4853c228fcbdee36ceb8a38cc8-1vxyhE_fw236.jpeg", "image/jpeg"))
ENABLE_LOGGING, trafficCounter, payloadCounter, new Attachment("/Users/isdom/Pictures/IMG_3492.JPG", "image/jpeg")).<AddMultiMediasToJourneyResponse>build().subscribe(new Subscriber<AddMultiMediasToJourneyResponse>() {
@Override
public void onCompleted() {
LOG.debug("AddMultiMediasToJourneyRequest: onCompleted.");
LOG.debug("traffic: upload: {}/download: {}", trafficCounter.outboundBytes(), trafficCounter.inboundBytes());
LOG.debug("payload: totalUpload: {}/totalDownload: {}", payloadCounter.totalUploadBytes(), payloadCounter.totalDownloadBytes());
}
@Override
public void onError(Throwable e) {
LOG.debug("AddMultiMediasToJourneyRequest: onError: {}", ExceptionUtils.exception2detail(e));
}
@Override
public void onNext(final AddMultiMediasToJourneyResponse resp) {
LOG.debug("AddMultiMediasToJourneyRequest: onNext: {}", resp);
}
});
// subscription.unsubscribe();
// TODO, why invoke onCompleted Event? not onError, check
// TO BE CONTINUE, 2015-05-13
LOG.debug("traffic: upload: {}/download: {}", trafficCounter.outboundBytes(), trafficCounter.inboundBytes());
LOG.debug("payload: totalUpload: {}/totalDownload: {}", payloadCounter.totalUploadBytes(), payloadCounter.totalDownloadBytes());
}
}
Aggregations