Потоковая передача аудио частотой 16000Гц через кастомный IAudioHandler. Аудио дополнительно
сжимается с использованием gzip. Аудио передается через отдельный WebSocketServer.
Как правило, для аудио используется выделенный порт 8082.
Каждый сэмпл аудио передается с незжатым header. В качестве Int32 значения передается sequence,
в качестве Int64 - ptc (измеряется в микросекундах).
Я так же рекомендую создать кстомный JitterBuffer для отслеживания отставания текущего пакета от
последнего полученного сервера.
Ниже представлен примерный код клмента для получения и обработки звука
private void OnMessageReceived(MessageWebSocket sender, MessageWebSocketMessageReceivedEventArgs args)
{
var reader = args.GetDataReader();
reader.ByteOrder = ByteOrder.LittleEndian;
if (reader.UnconsumedBufferLength < 12) return;
int seq = reader.ReadInt32();
long pts = reader.ReadInt64();
uint payloadLen = reader.UnconsumedBufferLength;
byte[] buf = new byte[payloadLen];
reader.ReadBytes(buf);
var msIn = new MemoryStream(buf);
var gzip = new GZipStream(msIn, CompressionMode.Decompress);
var msOut = new MemoryStream();
gzip.CopyTo(msOut);
var pcm = msOut.ToArray();
}
Передача скриншотов браузера при вызове ChromiumWebBrowser.Paint. Скриншоты так же сжимаются
с использованием gzip. Передача происходит побайтово и никак не маркируется
Отправка скриншота всей страницы в формате Base64 строки. Маркируется
Отправка сведений о текущем Uri
Отправка сведений об открытых страницах
Отправка сведений об изменении загаловка конкретной страницы
Отправка сведений о тексте в текущем поле ввода
Отправка сигнала, если ввод текста отменен страницей
Отправка текстового сигнала о статусе загрузки страницы LOADING/COMPLETE
Отправка сведений о возможности выполнить действие "Назад"
Отправка сведений о возможности выполнить действие "Вперед"
Получение от клиента контента, который следует вставить в текущий активный элемент
Получение запроса на отправку полного скриншота страницы (Статический режим)
Получение сведений о режиме обновления Staic/Dynamic
Получение сведений об отправке на активный элемент ввода KeyCode
Получение сведений об отправке на активный элемент ввода Char (Предпочтительный вариант)
Получение сведений о нажатии на клавиши действий
Получение сведений о текущей активной странице
Навигация. Используйте skipchk:, чтобы пропустить встроенную проверку на
корректность адреса
Навигация назад
Навигация вперед
Изменение размера окна браузера
Обработка события TouchDown
Обработка события TouchUp
Обработка события TouchMove
Обработка запроса на отправку всех активных вкладок
Обработка запроса на отправку скриншота определенной вкладки
Обработка запроса на закрытие определенной вкладки
Обработка запроса на открытие URL в новой вкладке. Проверка URL на этом этапе не происходит.
Обработка запроса на отправку скриншота в обход событию Paint
This site uses cookies to save some settings (like your language).
You can disable cookies in your browser settings — the site will probably still work.