关闭

Chrome Native Client 简介

463人阅读 评论(0) 收藏 举报
分类:

Chrome Native Client 简介

目的:

Native Client是一种允许在浏览器中运行native compiled code 的技术,允许开发者运用自己熟悉的语言来开发web应用,而不只是JavaScript,目前NativeClient技术只能应用于google自己的chrome中。

一个使用Native client技术的web应用的组成:JavaScript,HTML, CSS, 和Native Client 模块,Native Client 模块:就是用Native语言编写的,供web调用的模块,目前NativeClient SDK只支持C和C++作为native 语言。

 

应用场景:

1.      使用现有的已经存在的软件模块完成一个web 应用,而不需要换一种web语言来编写。

2.      一些传统桌面程序的迁移。

3.      多媒体应用的迁移。

4.      游戏应用的迁移。

 

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()接口来处理发过过来的消息。

 

参考:

https://developers.google.com/native-client/overview?hl=zh-CN#intro

https://developers.google.com/native-client/devguide/tutorial#review

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:161177次
    • 积分:3208
    • 等级:
    • 排名:第10676名
    • 原创:148篇
    • 转载:133篇
    • 译文:3篇
    • 评论:7条