Передача ImageData в background.js
Изучаю расширения для Google Chrome
Я получаю данные с видеокамеры, рисую их на canvas, потом получаю ImageData из canvas и отправляю в service_worker для дальнейшей обработки. В качестве соединения использую долгоживущий port между content и service_worker.
Основная проблема состоит в том, что операция отправки происходит очень долго (от 80ms - 140ms), но при этом я не могу отказаться от отправки данных на service_worker.
Есть ли способ как-то ускорить передачу данных?
Вот мой код:
var port = chrome.runtime.connect({name: 'myPort'}); // <--- открываю порт
function run(){
ctx.drawImage(video, 0, 0, 640, 480);
let imageData = ctx.getImageData(0, 0, 640, 480);
let data = Array.from(imageData.data); // <--- 30ms - 40ms
port.postMessage({message: 'video_frame', data: data}); // <--- 40ms - 100ms
};