1 回答
TA贡献1856条经验 获得超11个赞
Native client的工作原理:
一个Native Client应用主要分为3个组成部分:
1, HTML/JavaScriptapplication: 提供了用户界面和时间处理机制。
2, PepperAPI: 使得JavaScript code 和NativeClient module可以相互通信,同时允许Native Client 模块创建和管理浏览器相关的资源。
3, NativeClient module: 通常用于完成大量的计算,和大数据的操作。
下面看一下HTML/JavaScript和Native client Module之间的消息交互过程:
1. Html/JavaScript代码向NativeClientModule 发送消息:
在HTML/JavaScript代码中以一个<embed>块表示NativeClient module, 例如:
<embed name="nacl_module"
id="hello_world"
width=0height=0
src="hello_world.nmf"
type="application/x-nacl"/>
在load 完native client 之后,就可以通过getElementByID(hello_world),来获得Nativeclient的句柄--helloworldModule,之后可以通过helloworldModule->PostMessage()向NativeClient发送消息。
2. Html/JavaScript接收NativeClientModule发送的消息。
在html/JavaScript代码中,通过注册监听message消息,来实现对nativeClient消息的handle.
listener.addEventListener('message',handleMessage, true);
3. NativeClient Module向html/javaScript发送消息。
在nativeClient端,以一个pp::Instance()来代表html/JavaScript实体, 于是NativeClientModule 就可以通过pp::Instance->PostMessage来向html/JavaScript端发送消息。
4. NativeClient Module 接收html/javaScript消息。
可以通过pp::Instance()的hanleMessage()接口来处理发过过来的消息。
- 1 回答
- 0 关注
- 831 浏览
添加回答
举报