轮询客户端的实现
摘要: 服务器端给第一个客户端发送notification,然后在限定时间内,等待客户端作出回应—向服务器发送request。如果客户端一直没有回复,服务器会在到达限定时间后,向第二个客户端发送notification。如果客户端在限定时间内回复,服务器端放弃再给其他客户端发送消息。
Design
服务器、客户端使用socket发送和接收信息
发送端存在一个客户端列表,每次发送一给一个客户端,发送后,向Helper发送添加该客户端id的请求。
客户端收到信息会向Helper发送删除该id的请求。
Helper收到add时,启动一个ScheduledExecutorService类的schedule,延时启动一个线程,并将该schedule缓存。remove时,从缓存里取出schedule并停止它。如果在延时时间内,线程没有被停止,它会被执行:从缓存中取出,告诉服务器向下一个客户端发送请求。
阅读全文