parse messages

This commit is contained in:
Ben Menking
2026-05-29 11:49:31 -04:00
parent 9b8dacbe80
commit a115223a9f
+36 -1
View File
@@ -59,7 +59,7 @@ class CoreParser {
case CoreProtocol::RESP_CODE_CONTACT_MSG_RECV_V3:
case CoreProtocol::RESP_CODE_CHANNEL_MSG_RECV_V3:
case CoreProtocol::RESP_CODE_CHANNEL_MSG_RECV:
return $payload;
return self::parseMsg($payload);
case CoreProtocol::PUSH_CODE_ADVERT:
case CoreProtocol::PUSH_CODE_NEW_ADVERT:
return self::parseAdvert($payload);
@@ -69,6 +69,41 @@ class CoreParser {
}
}
protected static function parseMsg(string $payload): mixed {
$idx = 0;
$data = [
'code'=>ord($payload[$idx])
];
$idx++;
if( ord($payload[0]) == CoreProtocol::RESP_CODE_CHANNEL_MSG_RECV_V3 ) {
$alt = [
'snr'=>unpack('V', substr($payload, 1, 4))[1],
'reserved1'=>0,
'reserved2'=>0
];
$data = array_merge($data, $alt);
$idx = 5;
}
$remains = [
'channel_idx'=>ord($payload[$idx]),
'path_len'=>ord($payload[$idx+1]),
'type'=>ord($payload[$idx+2]),
'timestamp'=>unpack('V', substr($payload, $idx+3, 4))[1],
'message'=>substr($payload, $idx+7)
];
return array_merge($data, $remains);
}
/**
*
* @param string $payload
* @return mixed
*/
protected static function parseAdvert(string $payload): mixed {
$data = [
'code'=>ord($payload[0]),