我有一个项目需要在浏览器中使用websocket(或命名管道)与本机程序进行通信。 (Webassembly可行吗?)
我用Boost Library写了一个c ++ websocket,想把它编译成wasm。
但我不知道如何在Emscripten中使用Boost Lib(不仅仅是标题)。
我试着通过这个建立Boost Lib:qazxsw poi
但是,在使用Emscripten编译项目时,如何链接lib?
谢谢!
昨天我认为你不能这样做,因为在浏览器中你限制了浏览器API。我只知道websocket。
但是今天我发现我不对 - 存在WebRtc数据通道,所以可能的emscripten库以某种方式实现了C'socket'API。
恕我直言,这太难了。为什么要实现web套接字协议,使用可能功能有限的socket实现?你已经在javascript API中使用了websocket!
要在浏览器沙箱和外部世界之间进行通信,您可以从调用websocket API的webassembly程序javascript函数调用。
在Using Boost with Emscripten解释了如何编写不使用任何C库的C程序。在这种情况下,wasm代码很小。
请参阅我的问题中的示例代码:google io codelab
我认为你必须使用不同的解决方案来使用带有wasm的websockets。您可能想尝试在javascript中使用websockets并将其与您的c ++代码连接。
关于如何执行此操作的示例的另一个答案:
How to call from webassembly websocket API?
用于c ++ / javascript交互的emscripten文档: