Skip to content

Commit

Permalink
Merge pull request #3 from tuantuanyu/master
Browse files Browse the repository at this point in the history
跟数据库绑定
  • Loading branch information
tuantuanyu authored Nov 2, 2017
2 parents a4ac5c6 + 5d19935 commit 00bfc00
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 22 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ mpush allocator demo
### 其他 123456789


####改动
56 changes: 35 additions & 21 deletions src/main/java/com/shinemo/mpush/alloc/PushHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,12 @@

import com.mpush.api.Constants;
import com.mpush.api.push.*;
import com.mpush.common.druid.MysqlConnecter;
import com.mpush.tools.Jsons;
import com.mpush.tools.common.Strings;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -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();
Expand All @@ -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();
Expand All @@ -77,27 +80,38 @@ private void sendPush(Map<String, Object> 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 {
Expand Down

0 comments on commit 00bfc00

Please sign in to comment.