1 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
Native client的工作原理:
一個(gè)Native Client應(yīng)用主要分為3個(gè)組成部分:
1, HTML/JavaScriptapplication: 提供了用戶界面和時(shí)間處理機(jī)制。
2, PepperAPI: 使得JavaScript code 和NativeClient module可以相互通信,同時(shí)允許Native Client 模塊創(chuàng)建和管理瀏覽器相關(guān)的資源。
3, NativeClient module: 通常用于完成大量的計(jì)算,和大數(shù)據(jù)的操作。
下面看一下HTML/JavaScript和Native client Module之間的消息交互過(guò)程:
1. Html/JavaScript代碼向NativeClientModule 發(fā)送消息:
在HTML/JavaScript代碼中以一個(gè)<embed>塊表示NativeClient module, 例如:
<embed name="nacl_module"
id="hello_world"
width=0height=0
src="hello_world.nmf"
type="application/x-nacl"/>
在load 完native client 之后,就可以通過(guò)getElementByID(hello_world),來(lái)獲得Nativeclient的句柄--helloworldModule,之后可以通過(guò)helloworldModule->PostMessage()向NativeClient發(fā)送消息。
2. Html/JavaScript接收NativeClientModule發(fā)送的消息。
在html/JavaScript代碼中,通過(guò)注冊(cè)監(jiān)聽(tīng)message消息,來(lái)實(shí)現(xiàn)對(duì)nativeClient消息的handle.
listener.addEventListener('message',handleMessage, true);
3. NativeClient Module向html/javaScript發(fā)送消息。
在nativeClient端,以一個(gè)pp::Instance()來(lái)代表html/JavaScript實(shí)體, 于是NativeClientModule 就可以通過(guò)pp::Instance->PostMessage來(lái)向html/JavaScript端發(fā)送消息。
4. NativeClient Module 接收html/javaScript消息。
可以通過(guò)pp::Instance()的hanleMessage()接口來(lái)處理發(fā)過(guò)過(guò)來(lái)的消息。
- 1 回答
- 0 關(guān)注
- 877 瀏覽
添加回答
舉報(bào)