package hprose.example.push; import hprose.client.HproseClient; import hprose.util.concurrent.Action; import java.util.Arrays; import java.util.Date; import java.util.concurrent.CountDownLatch; interface IPushTime { public void time(Action<Date> callback); } public class TimePushClient2 { public static void main(String[] args) throws Exception { final HproseClient client = HproseClient.create("tcp://127.0.0.1:8080"); IPushTime pushTime = client.useService(IPushTime.class); final CountDownLatch counter = new CountDownLatch(10); pushTime.time((Date time) -> { if (counter.getCount() > 0) { counter.countDown(); System.out.println(time); } else { client.unsubscribe("time"); } }); System.out.println(client.isSubscribed("time")); System.out.println(Arrays.toString(client.subscribedList())); Thread.sleep(12000); System.out.println(client.isSubscribed("time")); System.out.println(Arrays.toString(client.subscribedList())); } }