public function sendCommand($commandName, $payload, $cb = null)
{
$pct = implode(static::ARGS_DELIMITER, array_map(function ($item) {
return !is_scalar($item) ? serialize($item) : $item;
}, (array) $payload));
$this->onResponse->push($cb);
$this->write(pack(static::HEADER_WRITE_FORMAT, static::MAGIC_REQUEST, $this->requestCommandList[$commandName], mb_orig_strlen($pct)));
$this->write($pct);
}