Некоторые подходы для взаимодействия между JavaScript и C++ через WebSocket:
- Emscripten WebSockets API. 1 Позволяет получить доступ к API WebSockets из кода на C/C++. 1 Один из преимуществ такого подхода — возможность разделять доступ к дескриптору WebSocket между несколькими потоками. 1
- Эмуляция POSIX TCP-сокетов через WebSocket. 1 Если есть существующий код для сетевой связи на C/C++, который использует API Posix Sockets, по умолчанию Emscripten пытается эмулировать такие соединения через протокол WebSocket. 1 Для работы этого подхода на стороне сервера нужно использовать, например, WebSockify. 1
- Полный доступ к POSIX Sockets через прокси-сервер WebSocket. 1 Этот подход позволяет получить полный доступ к API POSIX Sockets из веб-браузера. 1 Он работает за счёт проксирования всех вызовов API POSIX Sockets из браузера к прокси-серверу Emscripten POSIX Sockets, который затем выполняет родные вызовы TCP/UDP от имени страницы. 1
Также существует проект nmws, который обеспечивает взаимодействие между C++ и JavaScript через WebSockets. 3 Он состоит из лёгкой обертки на C++ вокруг функциональности связи WebSocket nanomsg и соответствующей библиотеки на JavaScript. 3