diff --git a/README.md b/README.md index 01d82c1..3917526 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,10 @@ mpush allocator demo > > content-type : text/plain;charset=utf-8 -### 其他 +### 打包部署 +alloc打包方法 +进入master目录 运行命令:mvn install(或者将mpush-client-0.8.0.jar手动放入alloc的jar文件夹下) +进入alloc目录,运行命令 +mvn clean package -Pzip,pub diff --git a/src/main/java/com/shinemo/mpush/alloc/PushHandler.java b/src/main/java/com/shinemo/mpush/alloc/PushHandler.java index 7e2dee7..e8b9f2e 100644 --- a/src/main/java/com/shinemo/mpush/alloc/PushHandler.java +++ b/src/main/java/com/shinemo/mpush/alloc/PushHandler.java @@ -24,7 +24,9 @@ import com.mpush.tools.Jsons; import com.mpush.tools.common.Strings; import com.sun.net.httpserver.HttpExchange; +import com.mpush.common.druid.MysqlConnecter; import com.sun.net.httpserver.HttpHandler; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,6 +47,7 @@ private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final PushSender pushSender = PushSender.create(); private final AtomicInteger idSeq = new AtomicInteger(); + String message = null; public void start() { pushSender.start(); @@ -62,7 +65,7 @@ public void handle(HttpExchange httpExchange) throws IOException { sendPush(params); - byte[] data = "服务已经开始推送,请注意查收消息".getBytes(Constants.UTF_8); + byte[] data = message.getBytes(Constants.UTF_8); httpExchange.getResponseHeaders().set("Content-Type", "text/plain; charset=utf-8"); httpExchange.sendResponseHeaders(200, data.length);//200, content-length OutputStream out = httpExchange.getResponseBody(); @@ -77,27 +80,38 @@ private void sendPush(Map params) { Boolean broadcast = (Boolean) params.get("broadcast"); String condition = (String) params.get("condition"); + //验证用户在数据库中是否存在 + MysqlConnecter mc = new MysqlConnecter(); + String mobile = mc.selectOne("select mobile from m_user where device_id='"+userId+"'"); + System.out.println("-----绑定用户在数据库--------"+mobile); + if (StringUtils.isBlank(mobile)){ + message = "绑定用户在数据库中不存在:userId="+userId; + }else { + NotificationDO notificationDO = new NotificationDO(); + //notificationDO.content = "MPush开源推送," + hello; + notificationDO.content = hello; + //notificationDO.title = "消息推送"; + //notificationDO.nid = idSeq.get() % 2 + 1; + //notificationDO.ticker = "你有一条新的消息,请注意查收"; + System.out.println("json内容:"+Jsons.toJson(notificationDO)); + PushMsg pushMsg = PushMsg.build(MsgType.NOTIFICATION_AND_MESSAGE, Jsons.toJson(notificationDO)); + pushMsg.setMsgId("msg_" + idSeq.incrementAndGet()); + + pushSender.send(PushContext + .build(pushMsg) + .setUserId(Strings.isBlank(userId) ? null : userId) + .setBroadcast(broadcast != null && broadcast) + .setCondition(Strings.isBlank(condition) ? null : condition) + .setCallback(new PushCallback() { + @Override + public void onResult(PushResult result) { + logger.info(result.toString()); + } + }) + ); + message = "服务已经开始推送,请注意查收消息"; + } - NotificationDO notificationDO = new NotificationDO(); - notificationDO.content = "MPush开源推送," + hello; - notificationDO.title = "MPUSH推送"; - notificationDO.nid = idSeq.get() % 2 + 1; - notificationDO.ticker = "你有一条新的消息,请注意查收"; - PushMsg pushMsg = PushMsg.build(MsgType.NOTIFICATION_AND_MESSAGE, Jsons.toJson(notificationDO)); - pushMsg.setMsgId("msg_" + idSeq.incrementAndGet()); - - pushSender.send(PushContext - .build(pushMsg) - .setUserId(Strings.isBlank(userId) ? null : userId) - .setBroadcast(broadcast != null && broadcast) - .setCondition(Strings.isBlank(condition) ? null : condition) - .setCallback(new PushCallback() { - @Override - public void onResult(PushResult result) { - logger.info(result.toString()); - } - }) - ); } private byte[] readBody(HttpExchange httpExchange) throws IOException {