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 關注
- 864 瀏覽
添加回答
舉報