提交心跳初版
parent
99062edcfd
commit
525c245fab
|
|
@ -46,8 +46,10 @@ public class NettyClient {
|
|||
/*---------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
while (true){
|
||||
Thread.sleep(10000);
|
||||
List<PacketNetData> result = handler.sendRequest_jieling(gameMessage);
|
||||
Thread.sleep(5000);
|
||||
// List<PacketNetData> result = handler.sendRequest_jieling(gameMessage);
|
||||
|
||||
List<PacketNetData> result = handler.sendHeartBeat_jieling();
|
||||
LOGGER.info("send to server...");
|
||||
}
|
||||
// ch.close();
|
||||
|
|
|
|||
|
|
@ -84,6 +84,18 @@ public class NettyTCPClientHandler extends SimpleChannelInboundHandler<Object> {
|
|||
|
||||
}
|
||||
|
||||
|
||||
public List<PacketNetData> sendHeartBeat_jieling() {
|
||||
|
||||
byte[] finalMessage = makeHeartBeatMessage();
|
||||
|
||||
channel.writeAndFlush(finalMessage);
|
||||
ArrayList<PacketNetData> msgs = new ArrayList<PacketNetData>();
|
||||
return msgs;
|
||||
|
||||
}
|
||||
|
||||
|
||||
private byte[] makeFinalMessage(MessageLite request) {
|
||||
byte[] messageData = request.toByteArray();
|
||||
byte[] packetData = new byte[messageData.length + 16];
|
||||
|
|
@ -99,6 +111,17 @@ public class NettyTCPClientHandler extends SimpleChannelInboundHandler<Object> {
|
|||
return finalData;
|
||||
}
|
||||
|
||||
private byte[] makeHeartBeatMessage() {
|
||||
byte[] packetData = new byte[12];
|
||||
Tea.intToByte(packetData, 0, 10000001);
|
||||
Tea.intToByte(packetData, 4, 543242);
|
||||
Tea.intToByte(packetData, 8, 1000);
|
||||
int[] secretKey = Tea.KEY;
|
||||
byte[] finalData = Tea.encrypt2(packetData, secretKey);
|
||||
|
||||
return finalData;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void channelRegistered(ChannelHandlerContext ctx) {
|
||||
|
|
@ -113,12 +136,15 @@ public class NettyTCPClientHandler extends SimpleChannelInboundHandler<Object> {
|
|||
int userId = packetNetData.getUserId();
|
||||
int token = packetNetData.getToken();
|
||||
int msgId = packetNetData.getMsgId();
|
||||
int msgIndex = packetNetData.getIndex();
|
||||
int resultCode = packetNetData.getResult();
|
||||
byte[] backmessage = packetNetData.parseServerProtoNetData();
|
||||
|
||||
PlayerInfoProto.PlayerInfo.GetPlayerInfoResponse getPlayerInfoResponse
|
||||
= PlayerInfoProto.PlayerInfo.GetPlayerInfoResponse.parseFrom(backmessage);
|
||||
System.out.println("back hartbeat id : "+msgId);
|
||||
|
||||
// int msgIndex = packetNetData.getIndex();
|
||||
// int resultCode = packetNetData.getResult();
|
||||
// byte[] backmessage = packetNetData.parseServerProtoNetData();
|
||||
|
||||
// PlayerInfoProto.PlayerInfo.GetPlayerInfoResponse getPlayerInfoResponse
|
||||
// = PlayerInfoProto.PlayerInfo.GetPlayerInfoResponse.parseFrom(backmessage);
|
||||
|
||||
// LOGGER.info("serverBack processMessage->uid={},token={},msgId={},msgIndex={},resultCode={}" +
|
||||
// ",backMessageRank={},backMessageFamily={},backMessageSex={}",
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import com.ljsd.jieling.network.session.ISession;
|
|||
import com.ljsd.jieling.protocol.ProtocolsAbstract;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.session.GameSession;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.ByteBufHolder;
|
||||
import io.netty.channel.group.ChannelGroup;
|
||||
|
|
@ -18,10 +19,7 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
/**
|
||||
|
|
@ -198,6 +196,29 @@ public class ProtocolsManager implements ProtocolsAbstract {
|
|||
}
|
||||
final ISession session = (ISession) gameSession;
|
||||
PacketNetData packetNetData = new PacketNetData((byte[])obj);
|
||||
if (packetNetData.getMsgId()==1000){
|
||||
|
||||
new Thread(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
Random random = new Random();
|
||||
int time = random.nextInt(6)+1;
|
||||
try {
|
||||
System.out.println("sleep time : "+time);
|
||||
Thread.sleep(time*1000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Thread.currentThread().setName("OOOOOOOOO");
|
||||
MessageUtil.sendHeartBeat(session);
|
||||
}
|
||||
}).start();
|
||||
|
||||
return;
|
||||
}
|
||||
BaseHandler baseHandler = handlers.get(packetNetData.getMsgId());
|
||||
if (baseHandler == null) {
|
||||
LOGGER.info("request unknow commond : " + packetNetData.getMsgId());
|
||||
|
|
|
|||
|
|
@ -53,6 +53,20 @@ public class MessageUtil {
|
|||
}
|
||||
}
|
||||
|
||||
public static void sendHeartBeat(ISession session) {
|
||||
int length = PackageConstant.UID_FIELD_LEN + PackageConstant.TOKEN_LEN
|
||||
+ PackageConstant.MSG_ID_FIELD_LEN ;
|
||||
byte[] bytes = new byte[length];
|
||||
int pos = 0;
|
||||
Tea.intToByte(bytes, pos, 100001);
|
||||
pos += PackageConstant.UID_FIELD_LEN;
|
||||
Tea.intToByte(bytes, pos, 123456);
|
||||
pos += PackageConstant.TOKEN_LEN;
|
||||
Tea.intToByte(bytes, pos, 1001);
|
||||
byte[] byteBuf = Tea.encrypt2(bytes, Tea.KEY);
|
||||
session.writeAndFlush(byteBuf);
|
||||
}
|
||||
|
||||
// public static void sendErrorResponse(Msg msg, GeneratedMessage error_message, int msgId) throws Exception {
|
||||
// String protoEntity = Base64.getEncoder().encodeToString(error_message.toByteArray());
|
||||
// BaseGlobal.redisApp.hset(RedisKey.RESPONSE, String.valueOf(msg.getUid()), String.valueOf(Math.abs(msg.getIndex())), new ProtoEntity(msgId, protoEntity), -1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue