Я всегда говорю людям, которые пробуют WebAssembly, что ...
WebAssembly (в контексте браузера) - это JavaScript.
Даже если вы кодируете на C / C ++с использованием Emscripten скомпилированный WebAssembly байт-код запускается в JavaScript-движке браузера, таком как V8.Это означает, что код WASM не имеет никаких специальных низкоуровневых API-интерфейсов, кроме API-интерфейсов JavaScript.Все функции системного уровня эмулируются с использованием JavaScript.
Что это значит?Низкоуровневое управление сокетами, такое как установка версий SSL и SSL-квитирование, не имеет смысла, потому что ваш код WASM может использовать только JavaScript WebSocket API для работы в сети , таким образом, сокеты обрабатываютсябраузер, а не ваш код WASM.
Вместо этого вы можете использовать простые BSD сокеты .Emscripten преобразует сокеты BSD в JavaScript WebSocket.Другими словами, вы не можете использовать библиотеку Poco вообще.
Например:
struct sockaddr_in addr;
ing res;
int fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
unsigned long nonblocking = 1;
fcntl(fd, F_SETFL, O_NONBLOCK);
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(9980);
if (inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr) != 1) {
perror("inet_pton failed");
finish(EXIT_FAILURE);
}
res = connect(server.fd, (struct sockaddr *)&addr, sizeof(addr));
Кстати, вы вынуждены использовать только асинхронные (неблокирующие) операции с сокетами, так как это веб-сокеты JS.
Ссылки, связанные с данной: