¿Quizás por (mal) usar alguna API heredada?
¿Hay complementos de navegador que puedan hacer esto?
Estoy en un entorno controlado, por lo que las soluciones que involucran complementos o modificaciones del navegador son bienvenidas.
Fondo:
Tengo algo de JS ejecutándose en una VM JavaScript incrustada, usando métodos personalizados expuestos desde C++. Estos métodos personalizados son síncronos (no es necesario que sean asíncronos).
Para pruebas y desarrollo, quiero poder ejecutar el mismo código JS en el navegador. Como el navegador no tiene mis métodos personalizados de C++, necesito llamarlos de forma remota. Hoy, estoy usando un XMLHttpRequest de bloqueo (obsoleto en la mayoría de los navegadores, pero aún funciona) para hacer esto.
El problema es que hacer una solicitud HTTP tiene cierta sobrecarga y es relativamente lento (en el rango de 20 a 50 ms). Los WebSockets son mucho más rápidos (ida y vuelta en unos pocos ms), pero como son inherentemente asincrónicos, no puedo usarlos para reemplazar mis funciones de bloqueo.