1 回答

TA貢獻1853條經驗 獲得超6個贊
Native client的工作原理:
一個Native Client應用主要分為3個組成部分:
1,?HTML/JavaScriptapplication: 提供了用戶界面和時間處理機制。
2, PepperAPI: 使得JavaScript code 和NativeClient module可以相互通信,同時允許Native Client 模塊創(chuàng)建和管理瀏覽器相關的資源。
3, NativeClient module: 通常用于完成大量的計算,和大數(shù)據(jù)的操作。
下面看一下HTML/JavaScript和Native client Module之間的消息交互過程:
1.?Html/JavaScript代碼向NativeClientModule 發(fā)送消息:
在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發(fā)送消息。
2. Html/JavaScript接收NativeClientModule發(fā)送的消息。
在html/JavaScript代碼中,通過注冊監(jiān)聽message消息,來實現(xiàn)對nativeClient消息的handle.
listener.addEventListener('message',handleMessage, true);
3. NativeClient Module向html/javaScript發(fā)送消息。
在nativeClient端,以一個pp::Instance()來代表html/JavaScript實體, 于是NativeClientModule 就可以通過pp::Instance->PostMessage來向html/JavaScript端發(fā)送消息。
4. NativeClient Module 接收html/javaScript消息。
可以通過pp::Instance()的hanleMessage()接口來處理發(fā)過過來的消息。
- 1 回答
- 0 關注
- 974 瀏覽
添加回答
舉報