Android中的Touch事件传递java
Html Dom onClick事件传递web
Netty中InBound、OutBound消息处理ChannelPipeline设计模式
服务器向手机端APP推送消息:服务器
当有网络而且手机端APP在线时候优先使用WebSocekt;websocket
当手机休眠的时候,没法使用websocket,改成使用华为推送服务向手机APP发送消息;网络
当华为推送也失败的时候,改成使用短信息来发送消息。socket
public abstract class Handler { protected Handler mNextHandler; public void setSuccessor(Handler h) { mNextHandler = h; } public abstract void handleRequest(Message msg) ; }
public class WebSocketHandler extends Handler{ @Override public void handleRequest(Message msg) { if(isOnLine()) { sendSocketMessage(); return; } super.mNextHandler.handleRequest(msg); } private void sendSocketMessage() { System.out.println("WebSocketHandler sendSocketMessage "); } private boolean isOnLine() { return false; } }
public class MiPushHandler extends Handler { @Override public void handleRequest(Message msg) { if(isCanPush()) { sendPushMessage(); return; } super.mNextHandler.handleRequest(msg); } private void sendPushMessage() { System.out.println("MiPushHandler sendPushMessage "); } private boolean isCanPush() { return false; } }
public class MmsHandler extends Handler{ @Override public void handleRequest(Message msg) { sendMms(); } private void sendMms() { System.out.println("MmsHandler sendMms "); } }
public static void main(String[] args) { WebSocketHandler webSocketHandle = new WebSocketHandler(); MiPushHandler miPushHandler = new MiPushHandler(); MmsHandler mmsHandler = new MmsHandler(); webSocketHandle.setSuccessor(miPushHandler); miPushHandler.setSuccessor(mmsHandler); // 启动消息泵 Message msg = new Message(); webSocketHandle.handleRequest(msg); }