协议推送
parent
3bb041a711
commit
6f1b0dcbf9
|
@ -149,6 +149,7 @@ public class HandlerLogicThread extends Thread{
|
|||
MissionEventDistributor.requestStart();
|
||||
baseHandler.execute(session, packetNetData);
|
||||
MissionEventDistributor.requestEnd(session,true);
|
||||
current().commit();
|
||||
MongoUtil.getInstence().lastUpdate();
|
||||
if(msgId != MessageTypeProto.MessageType.GET_CHAT_MESSAGE_REQUEST_VALUE){
|
||||
long useTime = System.currentTimeMillis() - curTimeMillis;
|
||||
|
|
|
@ -68,7 +68,7 @@ public class SimpleTransaction {
|
|||
}
|
||||
|
||||
|
||||
void commit() {
|
||||
public void commit() {
|
||||
doAddSendCache();
|
||||
for (TransTask transTask : tasks) {
|
||||
if (!transTask.isCallback())
|
||||
|
@ -84,11 +84,27 @@ public class SimpleTransaction {
|
|||
}
|
||||
}
|
||||
|
||||
public static class SendTask extends TransTask {
|
||||
public static class SendTask extends SendResponseTask {
|
||||
|
||||
public SendTask(GeneratedMessage proto, int msgId) {
|
||||
super(proto, msgId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (null != HandlerLogicThread.current() && null != HandlerLogicThread.current().getSession())
|
||||
MessageUtil.sendIndicationMessage(HandlerLogicThread.current().getSession(), 1, getMsgId(), getProto(), true);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static class SendResponseTask extends TransTask{
|
||||
|
||||
private GeneratedMessage proto;
|
||||
private int msgId;
|
||||
|
||||
public SendTask(GeneratedMessage proto, int msgId) {
|
||||
public SendResponseTask(GeneratedMessage proto, int msgId) {
|
||||
this.proto = proto;
|
||||
this.msgId = msgId;
|
||||
}
|
||||
|
@ -96,9 +112,8 @@ public class SimpleTransaction {
|
|||
@Override
|
||||
public void run() {
|
||||
if (null != HandlerLogicThread.current() && null != HandlerLogicThread.current().getSession())
|
||||
MessageUtil.sendIndicationMessage(HandlerLogicThread.current().getSession(), 1, msgId, proto, true);
|
||||
MessageUtil.sendMessage(HandlerLogicThread.current().getSession(), 1, getMsgId(), getProto());
|
||||
}
|
||||
|
||||
public int getMsgId() {
|
||||
return msgId;
|
||||
}
|
||||
|
@ -122,7 +137,7 @@ public class SimpleTransaction {
|
|||
if (sendCacheMap.containsKey(entry.getKey())) {
|
||||
List<GeneratedMessage> combineList = entry.getValue().combine(sendCacheMap.get(entry.getKey()));
|
||||
for (GeneratedMessage generatedMessage : combineList) {
|
||||
tasks.add(new SimpleTransaction.SendTask(generatedMessage, entry.getKey()));
|
||||
tasks.add(0,new SimpleTransaction.SendTask(generatedMessage, entry.getKey()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,8 +97,10 @@ public class MessageUtil {
|
|||
}
|
||||
|
||||
public static void sendMessage(ISession session, int result, int msgId, GeneratedMessage generatedMessage, boolean flush) {
|
||||
if( null!=HandlerLogicThread.current()){
|
||||
HandlerLogicThread.current().commit();
|
||||
|
||||
if(null!= HandlerLogicThread.current()){
|
||||
HandlerLogicThread.current().dealWhileCommit(new SimpleTransaction.SendResponseTask(generatedMessage,msgId));
|
||||
return;
|
||||
}
|
||||
|
||||
byte[] byteBuf = wrappedBuffer(session.getUid(), session.getToken(), session.getIndex(), result, msgId, generatedMessage);
|
||||
|
@ -110,6 +112,13 @@ public class MessageUtil {
|
|||
session.putBackMassageToMap(byteBuf);
|
||||
}
|
||||
|
||||
|
||||
public static void sendMessage(ISession session, int result, int msgId, GeneratedMessage generatedMessage) {
|
||||
byte[] byteBuf = wrappedBuffer(session.getUid(), session.getToken(), session.getIndex(), result, msgId, generatedMessage);
|
||||
session.writeAndFlush(byteBuf);
|
||||
session.putBackMassageToMap(byteBuf);
|
||||
}
|
||||
|
||||
public static void sendMessageWithoutBack(ISession session, int result, int msgId, GeneratedMessage generatedMessage, boolean flush) {
|
||||
byte[] byteBuf = wrappedBuffer(session.getUid(), session.getToken(), session.getIndex(), result, msgId, generatedMessage);
|
||||
if (flush) {
|
||||
|
|
Loading…
Reference in New Issue