1

我正在尝试运行由 goggle 本机客户端提供的套接字 api 示例。(路径:nacl_sdk\pepper_35\examples\api\socket)

我可以使用 make 命令构建和运行这个示例,它也可以在 chrome 浏览器上正确显示。但是,当我尝试连接到某个 TCP 端口时,无论 IP 和 PORT 是什么,它总是会失败。尽管我已经创建了一个应用程序来侦听我机器上的特定端口。

以下是错误信息:

tcp
Resolving ...
解析失败。

我什至无法通过仅提供端口号来创建本地服务器。它说:

在端口上启动服务器:8080
服务器:绑定失败:-7

以下更改已经完成:

  1. 在 chrome 上启用 nacl
  2. 在 chrome 上启用 nacl socket api

尝试了以下事情:

  1. 使用命令行参数启动 chrome "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-nacl-socket-api="http://localhost"

  2. "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-nacl-socket-api=IP_ADDRESS_OF_MY_SYSTEM

谁能告诉我在这里想念什么?

4

2 回答 2

1

正确的论点是:

--allow-nacl-socket-api=localhost

参数必须只是原点,并且它必须是试图访问套接字的原点。您的 IP 地址不起作用,因为您正在加载的页面没有指定 IP 地址。参数必须完全匹配,否则所有套接字调用都将失败。

于 2014-09-15T17:20:07.763 回答
0

我设法使用 Google Chrome 54.0.2840.59(64 位)在pepper_49 上运行。

第一步是确保您没有在 chrome://flags 中启用任何与 NACL 相关的功能。我想我打开了#allow-nacl-socket-api,即使你传递了正确的命令行参数,它也不起作用。将它们恢复为默认值!

其次,确保您没有运行任何其他 Chrome 实例。出于某种原因,如果在使用正确的命令行参数启动 chrome 之前正在运行另一个 chrome 实例,它将无法工作。

然后,最后一步(这一步归功于@binji),使用以下参数从命令行启动 chrome:

google-chrome --allow-nacl-socket-api=localhost

然后转到http://localhost:5103/api/socket。这一次,你应该有这个:

tcp
Resolving ...
Resolved: 127.0.0.1:80
Connecting ...
Connected
于 2016-10-20T15:05:59.400 回答