如何在JavaScript和Native Client模块之间进行通信

时间:2014-07-16 09:34:19

标签: javascript c++ google-nativeclient

我知道有一种方式消息系统(在JS中发送一些Message和c ++代码来处理该消息)。除了消息传递系统,JS还可以通过其他方式与Native Client模块进行通信吗?

例如,在JS调用中单击start m_client->启动Native Client模块的启动功能。点击JS中的停止调用m_client->停止Native Client模块的功能。

1 个答案:

答案 0 :(得分:1)

不,消息传递API(即PostMessage)是JavaScript和NaCl模块可以直接通信的唯一直接方式。

您可以实施类似于您所描述的内容:

// JavaScript
startButtonEl.addEventListener('click', function(e) {
  naclModuleEl.postMessage('start');
}, false);

当然,这将异步向NaCl发送消息。开发中有一个新的API允许与NaCl模块进行同步通信:

// JavaScript
startButtonEl.addEventListener('click', function(e) {
  var response = naclModuleEl.postMessageAndAwaitResponse('start');
  // do something with the response
}, false);

但Chrome目前无法在Chrome Stable中使用(最近登陆Chrome浏览器,请参阅此处的错误:https://code.google.com/p/chromium/issues/detail?id=367896