Minor fix.

This commit is contained in:
genxium 2023-01-29 22:38:12 +08:00
parent c65c122f45
commit 677e76179c
7 changed files with 57 additions and 55 deletions

View File

@ -1732,6 +1732,7 @@ func (pR *Room) startBattleUdpTunnel() {
continue continue
} }
playerId := pReq.PlayerId playerId := pReq.PlayerId
Logger.Info(fmt.Sprintf("`BattleUdpTunnel` for roomId=%d received decoded WsReq:", pR.Id), zap.Any("pReq", pReq))
if player, exists1 := pR.Players[playerId]; exists1 { if player, exists1 := pR.Players[playerId]; exists1 {
authKey := pReq.AuthKey authKey := pReq.AuthKey
if authKey != player.BattleUdpTunnelAuthKey { if authKey != player.BattleUdpTunnelAuthKey {

View File

@ -571,9 +571,9 @@ type WsReq struct {
JoinIndex int32 `protobuf:"varint,4,opt,name=joinIndex,proto3" json:"joinIndex,omitempty"` JoinIndex int32 `protobuf:"varint,4,opt,name=joinIndex,proto3" json:"joinIndex,omitempty"`
AckingFrameId int32 `protobuf:"varint,5,opt,name=ackingFrameId,proto3" json:"ackingFrameId,omitempty"` AckingFrameId int32 `protobuf:"varint,5,opt,name=ackingFrameId,proto3" json:"ackingFrameId,omitempty"`
AckingInputFrameId int32 `protobuf:"varint,6,opt,name=ackingInputFrameId,proto3" json:"ackingInputFrameId,omitempty"` AckingInputFrameId int32 `protobuf:"varint,6,opt,name=ackingInputFrameId,proto3" json:"ackingInputFrameId,omitempty"`
InputFrameUpsyncBatch []*InputFrameUpsync `protobuf:"bytes,7,rep,name=inputFrameUpsyncBatch,proto3" json:"inputFrameUpsyncBatch,omitempty"` AuthKey int32 `protobuf:"varint,7,opt,name=authKey,proto3" json:"authKey,omitempty"`
Hb *HeartbeatUpsync `protobuf:"bytes,8,opt,name=hb,proto3" json:"hb,omitempty"` InputFrameUpsyncBatch []*InputFrameUpsync `protobuf:"bytes,8,rep,name=inputFrameUpsyncBatch,proto3" json:"inputFrameUpsyncBatch,omitempty"`
AuthKey int32 `protobuf:"varint,9,opt,name=authKey,proto3" json:"authKey,omitempty"` Hb *HeartbeatUpsync `protobuf:"bytes,9,opt,name=hb,proto3" json:"hb,omitempty"`
} }
func (x *WsReq) Reset() { func (x *WsReq) Reset() {
@ -650,6 +650,13 @@ func (x *WsReq) GetAckingInputFrameId() int32 {
return 0 return 0
} }
func (x *WsReq) GetAuthKey() int32 {
if x != nil {
return x.AuthKey
}
return 0
}
func (x *WsReq) GetInputFrameUpsyncBatch() []*InputFrameUpsync { func (x *WsReq) GetInputFrameUpsyncBatch() []*InputFrameUpsync {
if x != nil { if x != nil {
return x.InputFrameUpsyncBatch return x.InputFrameUpsyncBatch
@ -664,13 +671,6 @@ func (x *WsReq) GetHb() *HeartbeatUpsync {
return nil return nil
} }
func (x *WsReq) GetAuthKey() int32 {
if x != nil {
return x.AuthKey
}
return 0
}
type InputsBufferSnapshot struct { type InputsBufferSnapshot struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
@ -1883,16 +1883,16 @@ var file_room_downsync_frame_proto_rawDesc = []byte{
0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x63, 0x6b, 0x69, 0x6e,
0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20,
0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74,
0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b,
0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65,
0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x79, 0x12, 0x4e, 0x0a, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55,
0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
0x52, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46,
0x6e, 0x63, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x27, 0x0a, 0x02, 0x68, 0x62, 0x18, 0x08, 0x20, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x15, 0x69, 0x6e, 0x70, 0x75,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x74, 0x63,
0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x02, 0x68, 0x62, 0x68, 0x12, 0x27, 0x0a, 0x02, 0x68, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74,
0x05, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x49, 0x55, 0x70, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x02, 0x68, 0x62, 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x49,
0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73,
0x68, 0x6f, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x68, 0x6f, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72,
0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72,

View File

@ -73,9 +73,9 @@ message WsReq {
int32 joinIndex = 4; int32 joinIndex = 4;
int32 ackingFrameId = 5; int32 ackingFrameId = 5;
int32 ackingInputFrameId = 6; int32 ackingInputFrameId = 6;
repeated InputFrameUpsync inputFrameUpsyncBatch = 7; int32 authKey = 7;
HeartbeatUpsync hb = 8; repeated InputFrameUpsync inputFrameUpsyncBatch = 8;
int32 authKey = 9; HeartbeatUpsync hb = 9;
} }
message InputsBufferSnapshot { message InputsBufferSnapshot {

View File

@ -161,7 +161,7 @@ cc.Class({
intAuthToken: "foobar", intAuthToken: "foobar",
authKey: Math.floor(Math.random() * 65535), authKey: Math.floor(Math.random() * 65535),
}).finish() }).finish()
const res2 = DelayNoMore.UdpSession.punchToServer("127.0.0.1", 3000, holePunchData); //const res2 = DelayNoMore.UdpSession.punchToServer("127.0.0.1", 3000, holePunchData, 19999, holePunchData);
const res3 = DelayNoMore.UdpSession.upsertPeerUdpAddr([window.pb.protos.PeerUdpAddr.create({ const res3 = DelayNoMore.UdpSession.upsertPeerUdpAddr([window.pb.protos.PeerUdpAddr.create({
ip: "192.168.31.194", ip: "192.168.31.194",
port: 6789, port: 6789,

View File

@ -107,8 +107,9 @@ window.handleHbRequirements = function(resp) {
authKey: authKey, authKey: authKey,
}).finish(); }).finish();
const udpTunnelHolePunchData = window.pb.protos.WsReq.encode({ const udpTunnelHolePunchData = window.pb.protos.WsReq.encode({
playerId: window.mapIns.selfPlayerInfo.playerId, msgId: Date.now(),
joinIndex: window.mapIns.selfPlayerInfo.JoinIndex, playerId: window.mapIns.selfPlayerInfo.Id,
act: window.UPSYNC_MSG_ACT_PLAYER_CMD,
authKey: resp.bciFrame.battleUdpTunnel.authKey, authKey: resp.bciFrame.battleUdpTunnel.authKey,
}).finish(); }).finish();
const res2 = DelayNoMore.UdpSession.punchToServer(backendAddress.HOST, 3000, holePunchData, resp.bciFrame.battleUdpTunnel.port, udpTunnelHolePunchData); const res2 = DelayNoMore.UdpSession.punchToServer(backendAddress.HOST, 3000, holePunchData, resp.bciFrame.battleUdpTunnel.port, udpTunnelHolePunchData);

View File

@ -3167,9 +3167,9 @@ $root.protos = (function() {
* @property {number|null} [joinIndex] WsReq joinIndex * @property {number|null} [joinIndex] WsReq joinIndex
* @property {number|null} [ackingFrameId] WsReq ackingFrameId * @property {number|null} [ackingFrameId] WsReq ackingFrameId
* @property {number|null} [ackingInputFrameId] WsReq ackingInputFrameId * @property {number|null} [ackingInputFrameId] WsReq ackingInputFrameId
* @property {number|null} [authKey] WsReq authKey
* @property {Array.<protos.InputFrameUpsync>|null} [inputFrameUpsyncBatch] WsReq inputFrameUpsyncBatch * @property {Array.<protos.InputFrameUpsync>|null} [inputFrameUpsyncBatch] WsReq inputFrameUpsyncBatch
* @property {protos.HeartbeatUpsync|null} [hb] WsReq hb * @property {protos.HeartbeatUpsync|null} [hb] WsReq hb
* @property {number|null} [authKey] WsReq authKey
*/ */
/** /**
@ -3236,6 +3236,14 @@ $root.protos = (function() {
*/ */
WsReq.prototype.ackingInputFrameId = 0; WsReq.prototype.ackingInputFrameId = 0;
/**
* WsReq authKey.
* @member {number} authKey
* @memberof protos.WsReq
* @instance
*/
WsReq.prototype.authKey = 0;
/** /**
* WsReq inputFrameUpsyncBatch. * WsReq inputFrameUpsyncBatch.
* @member {Array.<protos.InputFrameUpsync>} inputFrameUpsyncBatch * @member {Array.<protos.InputFrameUpsync>} inputFrameUpsyncBatch
@ -3252,14 +3260,6 @@ $root.protos = (function() {
*/ */
WsReq.prototype.hb = null; WsReq.prototype.hb = null;
/**
* WsReq authKey.
* @member {number} authKey
* @memberof protos.WsReq
* @instance
*/
WsReq.prototype.authKey = 0;
/** /**
* Creates a new WsReq instance using the specified properties. * Creates a new WsReq instance using the specified properties.
* @function create * @function create
@ -3296,13 +3296,13 @@ $root.protos = (function() {
writer.uint32(/* id 5, wireType 0 =*/40).int32(message.ackingFrameId); writer.uint32(/* id 5, wireType 0 =*/40).int32(message.ackingFrameId);
if (message.ackingInputFrameId != null && Object.hasOwnProperty.call(message, "ackingInputFrameId")) if (message.ackingInputFrameId != null && Object.hasOwnProperty.call(message, "ackingInputFrameId"))
writer.uint32(/* id 6, wireType 0 =*/48).int32(message.ackingInputFrameId); writer.uint32(/* id 6, wireType 0 =*/48).int32(message.ackingInputFrameId);
if (message.authKey != null && Object.hasOwnProperty.call(message, "authKey"))
writer.uint32(/* id 7, wireType 0 =*/56).int32(message.authKey);
if (message.inputFrameUpsyncBatch != null && message.inputFrameUpsyncBatch.length) if (message.inputFrameUpsyncBatch != null && message.inputFrameUpsyncBatch.length)
for (var i = 0; i < message.inputFrameUpsyncBatch.length; ++i) for (var i = 0; i < message.inputFrameUpsyncBatch.length; ++i)
$root.protos.InputFrameUpsync.encode(message.inputFrameUpsyncBatch[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); $root.protos.InputFrameUpsync.encode(message.inputFrameUpsyncBatch[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
if (message.hb != null && Object.hasOwnProperty.call(message, "hb")) if (message.hb != null && Object.hasOwnProperty.call(message, "hb"))
$root.protos.HeartbeatUpsync.encode(message.hb, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); $root.protos.HeartbeatUpsync.encode(message.hb, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
if (message.authKey != null && Object.hasOwnProperty.call(message, "authKey"))
writer.uint32(/* id 9, wireType 0 =*/72).int32(message.authKey);
return writer; return writer;
}; };
@ -3362,17 +3362,17 @@ $root.protos = (function() {
break; break;
} }
case 7: { case 7: {
message.authKey = reader.int32();
break;
}
case 8: {
if (!(message.inputFrameUpsyncBatch && message.inputFrameUpsyncBatch.length)) if (!(message.inputFrameUpsyncBatch && message.inputFrameUpsyncBatch.length))
message.inputFrameUpsyncBatch = []; message.inputFrameUpsyncBatch = [];
message.inputFrameUpsyncBatch.push($root.protos.InputFrameUpsync.decode(reader, reader.uint32())); message.inputFrameUpsyncBatch.push($root.protos.InputFrameUpsync.decode(reader, reader.uint32()));
break; break;
} }
case 8: {
message.hb = $root.protos.HeartbeatUpsync.decode(reader, reader.uint32());
break;
}
case 9: { case 9: {
message.authKey = reader.int32(); message.hb = $root.protos.HeartbeatUpsync.decode(reader, reader.uint32());
break; break;
} }
default: default:
@ -3428,6 +3428,9 @@ $root.protos = (function() {
if (message.ackingInputFrameId != null && message.hasOwnProperty("ackingInputFrameId")) if (message.ackingInputFrameId != null && message.hasOwnProperty("ackingInputFrameId"))
if (!$util.isInteger(message.ackingInputFrameId)) if (!$util.isInteger(message.ackingInputFrameId))
return "ackingInputFrameId: integer expected"; return "ackingInputFrameId: integer expected";
if (message.authKey != null && message.hasOwnProperty("authKey"))
if (!$util.isInteger(message.authKey))
return "authKey: integer expected";
if (message.inputFrameUpsyncBatch != null && message.hasOwnProperty("inputFrameUpsyncBatch")) { if (message.inputFrameUpsyncBatch != null && message.hasOwnProperty("inputFrameUpsyncBatch")) {
if (!Array.isArray(message.inputFrameUpsyncBatch)) if (!Array.isArray(message.inputFrameUpsyncBatch))
return "inputFrameUpsyncBatch: array expected"; return "inputFrameUpsyncBatch: array expected";
@ -3442,9 +3445,6 @@ $root.protos = (function() {
if (error) if (error)
return "hb." + error; return "hb." + error;
} }
if (message.authKey != null && message.hasOwnProperty("authKey"))
if (!$util.isInteger(message.authKey))
return "authKey: integer expected";
return null; return null;
}; };
@ -3472,6 +3472,8 @@ $root.protos = (function() {
message.ackingFrameId = object.ackingFrameId | 0; message.ackingFrameId = object.ackingFrameId | 0;
if (object.ackingInputFrameId != null) if (object.ackingInputFrameId != null)
message.ackingInputFrameId = object.ackingInputFrameId | 0; message.ackingInputFrameId = object.ackingInputFrameId | 0;
if (object.authKey != null)
message.authKey = object.authKey | 0;
if (object.inputFrameUpsyncBatch) { if (object.inputFrameUpsyncBatch) {
if (!Array.isArray(object.inputFrameUpsyncBatch)) if (!Array.isArray(object.inputFrameUpsyncBatch))
throw TypeError(".protos.WsReq.inputFrameUpsyncBatch: array expected"); throw TypeError(".protos.WsReq.inputFrameUpsyncBatch: array expected");
@ -3487,8 +3489,6 @@ $root.protos = (function() {
throw TypeError(".protos.WsReq.hb: object expected"); throw TypeError(".protos.WsReq.hb: object expected");
message.hb = $root.protos.HeartbeatUpsync.fromObject(object.hb); message.hb = $root.protos.HeartbeatUpsync.fromObject(object.hb);
} }
if (object.authKey != null)
message.authKey = object.authKey | 0;
return message; return message;
}; };
@ -3514,8 +3514,8 @@ $root.protos = (function() {
object.joinIndex = 0; object.joinIndex = 0;
object.ackingFrameId = 0; object.ackingFrameId = 0;
object.ackingInputFrameId = 0; object.ackingInputFrameId = 0;
object.hb = null;
object.authKey = 0; object.authKey = 0;
object.hb = null;
} }
if (message.msgId != null && message.hasOwnProperty("msgId")) if (message.msgId != null && message.hasOwnProperty("msgId"))
object.msgId = message.msgId; object.msgId = message.msgId;
@ -3529,6 +3529,8 @@ $root.protos = (function() {
object.ackingFrameId = message.ackingFrameId; object.ackingFrameId = message.ackingFrameId;
if (message.ackingInputFrameId != null && message.hasOwnProperty("ackingInputFrameId")) if (message.ackingInputFrameId != null && message.hasOwnProperty("ackingInputFrameId"))
object.ackingInputFrameId = message.ackingInputFrameId; object.ackingInputFrameId = message.ackingInputFrameId;
if (message.authKey != null && message.hasOwnProperty("authKey"))
object.authKey = message.authKey;
if (message.inputFrameUpsyncBatch && message.inputFrameUpsyncBatch.length) { if (message.inputFrameUpsyncBatch && message.inputFrameUpsyncBatch.length) {
object.inputFrameUpsyncBatch = []; object.inputFrameUpsyncBatch = [];
for (var j = 0; j < message.inputFrameUpsyncBatch.length; ++j) for (var j = 0; j < message.inputFrameUpsyncBatch.length; ++j)
@ -3536,8 +3538,6 @@ $root.protos = (function() {
} }
if (message.hb != null && message.hasOwnProperty("hb")) if (message.hb != null && message.hasOwnProperty("hb"))
object.hb = $root.protos.HeartbeatUpsync.toObject(message.hb, options); object.hb = $root.protos.HeartbeatUpsync.toObject(message.hb, options);
if (message.authKey != null && message.hasOwnProperty("authKey"))
object.authKey = message.authKey;
return object; return object;
}; };

View File

@ -28,7 +28,7 @@ bool punchToServer(se::State& s) {
SE_PRECONDITION2(ok, false, "punchToServer: Error processing arguments"); SE_PRECONDITION2(ok, false, "punchToServer: Error processing arguments");
CHARC* srvIp = args[0].toString().c_str(); CHARC* srvIp = args[0].toString().c_str();
int srvPort = args[1].toInt32(); int srvPort = args[1].toInt32();
BYTEC bytes[1024]; BYTEC bytes[maxUdpPayloadBytes];
memset(bytes, 0, sizeof bytes); memset(bytes, 0, sizeof bytes);
se::Object* obj = args[2].toObject(); se::Object* obj = args[2].toObject();
size_t sz = 0; size_t sz = 0;
@ -39,12 +39,12 @@ bool punchToServer(se::State& s) {
} }
int udpTunnelSrvPort = args[3].toInt32(); int udpTunnelSrvPort = args[3].toInt32();
BYTEC udpTunnelBytes[1024]; BYTEC udpTunnelBytes[maxUdpPayloadBytes];
memset(udpTunnelBytes, 0, sizeof udpTunnelBytes); memset(udpTunnelBytes, 0, sizeof udpTunnelBytes);
se::Object* udpTunnelObj = args[4].toObject(); se::Object* udpTunnelObj = args[4].toObject();
size_t udpTunnelSz = 0; size_t udpTunnelSz = 0;
uint8_t* udpTunnelPtr = NULL; uint8_t* udpTunnelPtr = NULL;
obj->getTypedArrayData(&udpTunnelPtr, &udpTunnelSz); udpTunnelObj->getTypedArrayData(&udpTunnelPtr, &udpTunnelSz);
for (size_t i = 0; i < udpTunnelSz; i++) { for (size_t i = 0; i < udpTunnelSz; i++) {
udpTunnelBytes[i] = (char)(*(udpTunnelPtr + i)); udpTunnelBytes[i] = (char)(*(udpTunnelPtr + i));
} }