Есть функция маскировки данных:
function mask($text) {
$b1 = 0x80 | (0x1 & 0x0f);
$length = strlen($text);
if ($length <= 125) {
$header = pack('CC', $b1, $length);
} elseif ($length > 125 && $length < 65536) {
$header = pack('CCn', $b1, 126, $length);
} elseif ($length >= 65536) {
$header = pack('CCNN', $b1, 127, $length);
}
return $header . $text;
}
Функция демаскировки данных:
function unmask($data) {
$length = ord($data[1]) & 127;
$masks = substr($data, 2, 4);
$maskedData = substr($data, 6);
$unmaskedData = '';
for ($i = 0; $i < strlen($maskedData); ++$i) {
$unmaskedData .= $maskedData[$i] ^ $masks[$i % 4];
}
return $unmaskedData;
}
Числа обрабатывают нормально, сервер отправляет корректные данные клиентам, но любой текст возвращается как null. В чем может быть проблема?