最新版本 AppEmit v1.3.50 English version

  1. 内容分发下载 地址1

    github镜像 下载 地址2

2.handWare_comm web layui AppEmbed rtsp Office Dll

AppEmit

AppEmit是应用程序(尤其是浏览器)与本地程序间互相通信的易扩展的轻量级中间件。主要采用了HTML5国际标准的Web Socket进行通话,默认为异步, JSON格式传递参数。

  • 主要功能

  • 在几乎所有浏览器包括(最新版本的chrome edge Firefox QQ 360 Yandex sogou opera IE等) 播放含有flash的网页或Flash文件,包括swf交互动画、flv影视、RTSP等
  • 在浏览器多种方式打开RTMP、RTSP等媒体文件,支持转码
  • 在浏览器打开、操作本地文件,比如阅读PDF;创建、阅读、编辑Office文件,autoCAD,且支持JavaScript代码操作
  • 在浏览器中调用第三方DLL、OCX组件以及系统winApi函数,tcc、python、lua等
  • 开发本地硬件DLL驱动模块的封装插件,实现在网页中操作控制本地的读卡器、打印机、扫描仪、高拍仪、U盾等各种硬件设备
  • 各个应用程序之间通信,比如聊天
  • 在Chrome里嵌入IE内核网页,保护源码,可以不修改原有的ActiveX读取html,同时支持开源内核wke和blink

  • 解决问题
  1. 国际市场份额68%以上的chrome浏览器(数据来源Netmarketshare;国内25%以上)在2020年12月后不再支持flash(NPAPI),而微软的edge也不支持ActiveX。
  2. 客户习惯使用浏览器来处理各种业务,能调用IE内核。
  3. 游戏商、银行、医院、电力、硬件等企业客户使用dll、ActiveX、flash等文件的场景需要。

程序名称 AppEmit.exe

网址 http://www.appemit.com

Github https://github.com/appemit/appemit

Email appemit(at)appemit.com

  • Github 的目录说明

├ dist 下载此文件夹的zip压缩包即可。已经包含了NPSWF和帮助文档demo

├ README.md

└ README_zh.md

  • 详细功能

  • 支持最新版本各种内核浏览器
  • 支持使用JS交互信息
  • 支持同步、异步(默认)处理消息或者消息组
  • 支持一个页面打开多个APP
  • 支持本地文件和网络文件访问
  • 支持获取硬件信息,包括系统、CPU、主板、显卡、内存、硬盘、网络等
  • 支持USB监控
  • 支持pcomm串口异步多线程调用
  • 支持用户间通信、发送接收消息
  • 支持使用IE、webkit、blink内核打开,互动网页
  • 支持打开、互动flash,包括ActiveX flash和NPflash
  • 支持多媒体播放,支持mp4、mp3、rtmp、 rtsp、 swf 、flv
  • 支持浏览器多种方式打开RTMP、RTSP等媒体文件,支持转码
  • 支持打开、编辑、代码互动microsoft office、金山office的world、excel、ppt,支持本地文档和网络文档处理
  • 支持打开AutoCAD
  • 支持打开PDF3D
  • 支持调用第三方dll、com、dotnet等链接库
  • 支持开发dll等

1.1 使用条件

Windows系统,支持XP以上。

1.2 用法

下载免安装程序AppEmit(不含插件小于6M),运行AppEmit.exe即可。设置了开机自启动,应避免被杀毒软件关闭。

目录

同时只能开启一个AppEmit.exe进程。

 直接运行,如果本机已经运行了AppEmit.exe,则不做处理。

 如果本机已经有程序AppEmit.exe运行,右键以管理员方式运行,则关闭老进程,开启新的进程。

1.3 技术实现

Web Socket采用开源控件HPSocket,支持ssl。

Dll文件开放了C接口,可以在此基础二次开发控件。

 HPSocket4C_U.dll

 HPSocket4C-SSL_U.dll

1.3.1 实现过程

在Html的js实现WebSocket,调用AppEmit通话。

ws = new WebSocket(wsUrl);  
ws.onopen = function (evt) {};
ws.onmessage = function (evt) {};
ws.onclose = function (evt) {};

1.3.2 主要步骤,连接授权,发送命令

  1. 网页注册后获得设置cid,clientKey,获得连接授权。或者使用临时账户cid=00000-1测试。
  2. 连接Appemit服务 AE_InitApp("ws://localhost:80/appemit?cid=00000-1&sid=1&flag=1")
  3. 设置clientKey授权,(clientKey为私有,发布后需要保密混淆加密js)初始化数据以及授权等
var init_AE={
		 "clientKey":"temp-0000000000",  
		  "Browser":ThisBrowser,
		  "wsUrl":wsUrl,
		//  "sid":"1",         
		  "gid":"[1,2]",      
  }

 
  
  1. 发送命令

AE.OpenApp('{"emit":"hardWare","Obj":"pc"}')

1.3.3 demo

在demo下主要是html的举例,

  • 括获取pc信息,实现通话的index.html
  • 以及播放flash的AppEmbed.html

1.4 联系

邮件: appemit(at)appemit.com

Plugin

插件场景

(请以下载文档的最新PDF为参考。)

2.1 获取客户端信息

使用浏览器打开demo下的index.html。授权连接后,发送获取PC信息命令。

AE_InitApp("ws://localhost:80/appemit?cid=00000-1&sid=1&flag=1")
AE_OpenApp('{"emit":"hardWare","Obj":"pc"}') 

PC信息

2.2 不同客户端通信

打开demo下的index.html,模拟不同sid打开浏览器。 连接Appemit授权后,在sid=1下发送命令。

{"emit":"msg","toSids":["2,3"],"toGids":[1,2],"data":"hi, I'am Tom."}

在客户cid全集下,通过唯一的sid对话,可以一对一,或者一对多通话。 1对2和3通话 图为1对2和3通话。

另外还可以设置不同群gid,一个sid可以加入不同的gid。 发送消息时,在cid全集下,所有的toSids和toGids取对应的sid交集剔重,并排除自身。

2.3 Flash 两种方法,主要四种形式实现场景

1、 使用客户端本地安装的Flash Player ActiveX控件,要是客户端没有,需要自行下载。下载地址:http://www.adobe.com/go/getflashplayer 2、 使用Appemit程序自带的插件plugins/NPSWF32.dll

image

2.3.1 ActiveX形式

2.3.1.1 打开网络flash文件

打开demo下的AppEmbed.html,连接授权后,发送使用ActiveX(”AppType”:4)打开网络flash文件命令,参数如下。

{"emit":"open","Obj":"flash","AppType":4,"src":"http://img1.yo4399.com/swf/00/0ff035e0e96584c07df65ab3636f72.swf","pos":1,"par0":{"autoPlay":1,"toolbar":0,"rightMenu":0,"hitCaption":0,"hideStop":0,"loop":1,"volumeMute":0,"flashVars":"a=0&b=0&c=SetInSrc"}}

注意事项:

在客户端需要下载安装flash player ActiveX。 路径是 / 或许
flashVars可以设置在src中

image

刷新即可关闭flash

2.3.1.2 打开本地flash文件

可以是绝对或者相对路径,相对于AppEmit.exe的路径:”demo/htmlDemo/test1.swf”。

{"emit":"open","Obj":"flash","AppType":4,"src":"demo/htmlDemo/test1.swf","pos":1,"par0":{"autoPlay":1,"toolbar":0,"rightMenu":0,"hitCaption":0,"hideStop":0,"loop":1,"volumeMute":0,"flashVars":"a=0&b=0&c=SetInSrc"}}

image

2.3.2 NPAPI-嵌入web

能打开常用网页,目前的插件不支持html5的媒体特性。如有需要,可以使用node或者electron插件。 使用Appemit程序自带的插件NPSWF32.dll,能打开嵌有flash的网页。 连接授权后,发送命令”AppType”:1的形式。

{"emit":"open","Obj":"flash","AppType":1,"src":"http://sxiao.4399.com/4399swf/upload_swf/ftp14/yzg/20140328/bombit7/zx_game7.htm","pos":1}

image

2.3.3 NPAPI-网络flash文件

使用Appemit程序自带的插件NPSWF32.dll, 打开网络flash文件。 连接授权后,发送命令”AppType”:2的形式。

{"emit":"open","Obj":"flash","AppType":2,"src":"http://sxiao.4399.com/4399swf/upload_swf/ftp18/liuxy/20160130/17801/game.swf","pos":1,"par0":{"autoPlay":true,"loop":true,"quality":"high","wmode":"Transparent"}}

image

2.3.4 NPAPI-网络媒体文件

使用Appemit程序自带的插件NPSWF32.dll, 打开网络媒体文件,包括flv,mp4等。 连接授权后,发送命令”AppType”:3的形式。

{"emit":"open","Obj":"flash","AppType":3,"src":"https://media.html5media.info/video.mp4","pos":1,"par0":{"autoPlay":1,"loop":1}}

image

2.4 关闭

  1. 刷新即可关闭flash
  2. {"emit":"close","Obj":"flash"}
  3. {"emit":"closeAll","Obj":"flash"}

2.5 Web 2.4.1 IE 内核 “AppType”:1使用IE内核打开网页 {“emit”:”open”,”Obj”:”web”,”AppType”:1,”pos”:1,”par”:{“htmlStr”:null,”HttpServer_startUrl”:null,”URL”:”http://www.appemit.com”},”par0”:{“header”:null,”noScriptErr”:true, “UIFLAG”:null,”DLCTL”:null,”userAgent”:null,”crossDomain”:true}}

设置htmlStr可以直接打开html源码。 设置HttpServer_startUrl,可以打开本地的html文件。 设置URL打开网页。 三者优先级依次下降。 目录 2.4.2 Webkit内核 “AppType”:2使用webkit内核打开网页 {“emit”:”open”,”Obj”:”web”,”AppType”:2,”pos”:1,”par”:{“htmlStr”:null,”HttpServer_startUrl”:null,”URL”:”http://www.appemit.com”},”par0”:{“header”:null, “userAgent”:null,”crossDomain”:true}}

设置htmlStr可以直接打开html源码。 设置HttpServer_startUrl,可以打开本地的html文件。 设置URL打开网页。 三者优先级依次下降。

code

参数

(请以下载文档中最新的PDF文件说明为准。)

3.1 连接

ws://localhost:80/appemit?cid=00000-1&sid=1&flag=1

名称 设置 含义 说明 协议 ws SSL为wss 网址 Localhost 127.0.0.1 Port 80 默认 可以在config.in修改 443 ssl默认 可以在config.in修改 path appemit 必需 para cid 必需。00000-1为免费账号。 全集。 sid 可选。唯一session或者用户名ID 测试最好在js中实现 flag 可选。默认0,非调试。 1调试

3.2 初始化数据

var init_AE={
 		"clientKey":"temp-0000000000",  
		"Browser":ThisBrowser,
		"wsUrl":wsUrl,
		 "sid":"123456",        									 
        "gid":"[1,2]"                                             
	 }

名称 设置 含义 说明 客户端clientKey temp-0000000000 必需,与cid对应。 保密,js应该混淆加密。 Browser ThisBrowser 默认 wsUrl wsUrl 默认 可以在config.in修改 用户sid 非必需。唯一才可以正常通话。 生产环境,同一设置于此。 群gid 数组 非必需 一个sid可有不同gid

3.3 命令

3.3.1 硬件信息

{"emit":"hardWare","Obj":"pc"}

名称 设置 含义 说明 emit hardWare 必需。通信请求。 Obj pc 必需。目标对象。

3.3.2 通话

{"emit":"msg","toSids":["2"],"toGids":[1,2],"data":"hi, I'am Tom."}

名称 设置 含义 说明 emit msg 必需。通信事件请求。 toSids 必需要有一个 非必需。可以是数组。 toGids 非必需。可以是数组。 data 必需。

3.3.3 打开事件

参数格式如下 名称 设置 含义 说明 emit open 必需。打开控件APP通信事件请求。 Obj 必需。 flash默认 word 后续支持 excel后续支持 CAD后续支持 par0

3.3.3.1 “AppType”:4打开flash

{"emit":"open","Obj":"flash","AppType":4,"src":"http://img1.yo4399.com/swf/00/0ff035e0e96584c07df65ab3636f72.swf","pos":1,"par0":{"autoPlay":1,"toolbar":0,"rightMenu":0,"hitCaption":0,"hideStop":0,"loop":1,"volumeMute":0,"flashVars":"a=0&b=0&c=SetInSrc"}}

名 3.3.3.2 “AppType”:1打开flash

{"emit":"open","Obj":"flash","AppType":1,"src":"http://sxiao.4399.com/4399swf/upload_swf/ftp14/yzg/20140328/bombit7/zx_game7.htm","pos":1}

3.3.3.3 “AppType”:2打开flash

{"emit":"open","Obj":"flash","AppType":2,"src":"http://sxiao.4399.com/4399swf/upload_swf/ftp18/liuxy/20160130/17801/game.swf","pos":1,"par0":{"autoPlay":true,"loop":true,"quality":"high","wmode":"Transparent"}}

3.3.3.4 “AppType”:3打开flash

{"emit":"open","Obj":"flash","AppType":3,"src":"https://media.html5media.info/video.mp4","pos":1,"par0":{"autoPlay":1,"loop":1}}

3.3.3.6 webkit内核打开网页 {"emit":"open","Obj":"web","AppType":2,"pos":1,"par":{"htmlStr":null,"HttpServer_startUrl":null,"URL":"http://www.appemit.com"},"par0":{"header":null, "userAgent":null,"crossDomain":true}}

……

faq

问题

  1. 支持linux mac? 目前版本不支持,使用在windows系统上。
  2. 免费吗? 分为免费版和付费版。
  3. 免费版本有何限制条件? 免费版本,每次启动和第20、40、80…分钟时发消息会有弹窗
  4. 测试点击连接,为何没有反应? 首先要打开AppEmit.exe服务,可以F12查看报错情况。重启系统后,AppEmit.exe进程自动开启,没有被关闭。
  5. 如何开发插件? 可以使用C C++等语言直接调用。
download

download

easy,samll!

  1. 内容分发下载 地址1

    github镜像 右键另存 地址2

  2. AppEmbed Demo Demo

  • Github 的目录说明

├ dist 下载此文件夹的zip压缩包即可。已经包含了NPSWF和帮助文档demo

├ docs 略过

├ plugins 含有更多的插件,使用时自动安装,如果局域网使用请自行下载。

├ README.md

└ README_zh.md

contact

Contact

1
2
3
 Email appemit(at)appemit.com
 qq 273315156
 github https://github.com/appemit/appemit