当前位置:文档之家› BHO插件开发入门

BHO插件开发入门

BHO插件开发入门
BHO插件开发入门

目录

一,BHO开发概述 (2)

1.1BHO的用途及实际应用 (2)

1.2BHO的工作原理及技术环境 (2)

二,框架设计 (3)

2.1构建BHO框架 (3)

2.2实现IO BJECT W ITH S ITE的接口方法 (5)

三,注销SESSION (6)

3.1将BHO注册为浏览器的事件处理器 (6)

3.2监听浏览器关闭事件,并向S ERVER发送跳转指令 (7)

3.3关闭BHO注销页面 (8)

3.4阻止文件浏览器加载BHO (9)

3.5向注册表中注册BHO组件 (9)

四,打包发布 (10)

4.1BHO打包和找到关联D LL文件 (10)

4.2编写自动安装脚本INF文件 (11)

4.3用CABARC工具打包。 (12)

一,BHO开发概述

1.1 BHO的用途及实际应用

BHO(Browser Help Objects),是实现了特定接口的COM组件。BHO只适用于Windows系统下

的IE浏览器和文件浏览器。开发好的BHO插件在注册表特定的位置注册好后,每当微软的浏览器启动,BHO实例就会被创建。在浏览器工作的过程中,BHO会接收到很多事件,比如浏览器浏览新的地址、前进或后退、生成新的窗口、浏览器退出等等。BHO可以在这些事件的响应中实现与浏览器的

交互。

本文档中我们将通过编写一个BHO实例来详细讲解BHO开发的一般流程。该实例的功能是:当

用户成功登陆网站后,如果用户点击IE关闭按钮,BHO将捕获IE关闭事件,同时向Server发送一

个注销当前用户Session的请求。Server注销后跳转到BHO注销页面,BHO捕获到BHO注销页面时,

关闭该页面。

1.2 BHO的工作原理及技术环境

BHO是COM组件,而且一定实现了IObjectWithSite接口。这些组件除了在注册表中注册为COM Server外,还必须将它们的CLSID在HKEY_LOCAL_MACHINE\SOFTWARE\ Windows\ CurrentVersion\ Explorer\Browser Helper Objects下注册为子键。微软在设计浏览器的时候,已经给这些组件预

留了空间。每当浏览器启动时,浏览器会首先在上述注册表位置查看是否有注册的 BHO CLSID;如果有则分别创建一个实例,并对BHO实例进行初始化,建立交互连接。(注:BHO实例只有在创建它的浏览器窗口销毁时才被释放。)图1.1演示了BHO的创建过程:

图1.1

表1.1 BHO支持的操作系统一览及IE一览

二,框架设计

2.1 构建BHO框架

?开发环境: Microsoft Visual C++ 6.0

?步骤1:建立一个工作区(WorkSpace)。

?步骤2:在工作区中,建立一个ATL 工程(Project)。示例程序叫TEST,并选择

DLL方式,见图2.1。

图2.1

?步骤3:增加ATL对象类。在菜单Insert\New ATL Object...(或者用鼠标右键在

ClassView 卡片中弹出菜单)并选择Object 分类,选中Internet Exploer 项目。见图2.2。

图2.2

?步骤4:填写COM类的名称。只要输入Short Name,其它自动生成。见图2.3。

图2.3

2.2实现IObjectWithSite 的接口方法

? 步骤1:先定义几个成员变量:CComQIPtr

mWebBrowser2,(需要加入#include "ExDisp.h"),用以保存浏览器组件的指针;DWORD mCookie ,用以保存与浏览器的连接ID 。见图2.4

图2.4(详见

MyBho.h 文件)

? 步骤2:IObjectWithSite 有两个接口方法:SetSite 和GetSite 。我们只需重载 SetSite

就行了。在ImyBho 中增加函数声明SetSite 函数。见图2.5

变量声明

图2.5

?步骤3: 实现IDispatch接口方法。事件处理也就在IDispatch::Invoke中实现(各个事

件的ID在ExDispID.h中定义)。 BHO可能会接收到很多事件,但我们只需要响应我们感兴趣的那一部分。首先在ImyBho中增加该函数的声明。见图2.6

图2.6

?步骤4: ImyBho添加RegisterEventHandler(BOOL inAdvise)方法声明,实现向IE注

册和注销事件。详见附录代码。

通过上面的步骤,一个基本的BHO对象框架已经建立起来了。下一节来我们将根据具体要实现的功能(向Server发送注销Session命令)对代码主要功能作说明。

三,注销Session

3.1将BHO注册为浏览器的事件处理器

注册BHO的事件的工作主要在SetSite函数中来完成。首先保存浏览器指针到mWebBrowser2成员变量中去。然后调用RegisterEventHandler函数向浏览器注册为事件处理器。见图3.1

图3.1(详见MyBho.cpp文件)

3.2监听浏览器关闭事件,并向Server发送跳转指令

监听浏览器事件,全部在Invoke函数中来完成。当捕获了浏览器退出事件(DISPID_ONQUIT)

时,首先取得页面的窗口名,判读是不是成功登陆页面。如果是,向Server 的LogOffAction发送一组数据,通知Server是BHO注销事件。然后退出IE。见图3.2

图3.2(详见MyBho.cpp文件)

3.3关闭BHO注销页面

当Server监听到BHO发来的注销命令时,Server注销当前用户的Session后,跳转到一个专门的BHO注销页面(正常情况下是注销退出到登陆页面)。当BHO检测到IE已经跳转到BHO注销页面时,就将窗口关闭。从而使用户对于注销过程可以忽视。见图3.3。

3.4阻止文件浏览器加载BHO

为了阻止文件浏览器加载BHO,在Dll入口函数DllMain中加入了判断。见图3.4

图3.4(详见TEST.cpp文件)

3.5向注册表中注册BHO组件

为了向注册表中注册BHO组件,还需要在MyBho.rgs中加入下面的代码。见图3.5

到此,一个简单的注销Seesion的BHO插件开发完毕了,当然还要在根据具体情况,在Server 端加以判断才行。详细代码,请参考附录。

四,打包发布

经过前面的工作,这个BHO可以打包成CAB格式发布到网站了。当然还要在CAB包中编写一个自动安装的脚步。当用户登录网站,就可以自动安装插件了。下面是详细步骤。

4.1 BHO打包和找到关联Dll文件

首先,把BHO打包成Dll文件。在VC的Build菜单中选择 Set Active Project Configuration 选项,然后再选中Win32 Release MinDependency选项,点击OK。如果此时编译发布出现error LNK2001 错误的话,请到Project->Settings->C/C++中去除_ATL_MIN_CRT这个预处理符号。好了,如果一切顺利的话。我们编译的Dll文件就存放到了我们的工程下的ReleaseMinDependency目录中了。

接下来,由于我们的Dll用到了一些VC自带的Dll库文件。而用户不一定有这些库文件,所有要找到到底用了哪些库文件。这里我们使用VC自带的工具Dependency。(..\Microsoft Visual Studio\Common\Tools目录下)。使用它打开我们刚编译好的Dll文件,就可以看到和它关联的所有Dll文件。见图4.1

图4.1

从图中可以看到,当前的Dll用到的VC库文件是OLE32.DLL ,OLEAUT32.DLL。然后我们在Windows/System32目录下找到这两个个文件,复制。然后和生成的test.dll放到一个文件夹。

4.2编写自动安装脚本inf文件

由于我们的CAB包要自动下载安装到用户的电脑上面,所有必须要编写一个inf安装脚本。关于inf自动安装脚本的说明,详见图4.2

4.3用 下载此工具https://www.doczj.com/doc/498920243.html,/yule/meinv/179/418679.shtml

把刚才的文件都拷贝到该工具的BIN 目录下面。执行如下命令: cabarc –s 6144 N TEST.CAB oleaut32.dll ole32.dll test.dll TEST.inf 。执行完毕后,会在此目录下生成一个TEST.CAB 包。这个压缩包就可以发布到网站了。当然现在这个包没有经过任何签名,在IE 的默认安全策略下面是执行不了的,解决办法是:1.把放包的网站设置为信任站点。 2.花钱买一个证书,一年费用好像是5000多。当然我们是测试,所有采用第一种方式。

编写一个HTML 文件,插入以下代码: 然后把

TEST.CAB 放到网站目录下。运行见图4.3

固定格式

此处声明都有哪些文件。注意顺序,被调用的dll 要放到前面。

1. file 值告诉ie 到哪里去得到这个dll

2. 第二部分告诉声明支持的OS

3. 第三部分是CPU 类型

4.

thiscab 说明在当前的cab 文件

Dll 的CLSID 。在VC 中的rgs 文件中可以找到。

是否需要注册

图4.3

由于没有获取认证,所以弹出警告框。点击安装后,我们的文件就被复制到了Windows/Systeme32的目录下面了。并且已经注册。再重启IE,我们的BHO就开始运行了。

注:如需要删除BHO。请用 regsvr32 –u “文件路径 + 文件名”来注销。然后就可以删除掉了。

OpenFire插件开发基础教程

O p e n F i r e插件开发基础教程 Openfire是一款优秀的XMPP服务器,而且是开放源码的.大家可以根据自己的需求进行二次开发。二次开发主要有两种方式:1.修改源代码,2开发openfire插件。从可扩展性上考虑,自然是开发插件是上策,只有插件无法实现时候才会选择修改源代码。 下面就个人经验,说明一下如何开发openfire插件 一、环境基础 要有一个配置好的openfire开发环境,这个网络上有比较详细的教程了。比如《》和《行》,这时候ant应该是可以正常运行的,先执行openfire 【default】,就生成了openfire的目标代码,再执行plugins,就个生成所以系统自带的插件。 二、目录拷贝 打开workspace\openfire_src\src\plugins目录,找一个要修改的插件,我选的是subscription,拷贝生成“subscriptionUF”。打开src目录,里面有两个文件夹 ,java就是我们要改的源码,而web里面是修改这个插件所要用的web 配置页面,目前用不到,直接删除。 三、修改plugin.xml 这个一个xml文件,里面的内容就按照自己的样子更改吧。最关键是确定,插件所在的类名,既然没有web文件夹了adminconsole也全部注释掉吧. 四、修改类和类目录 修改src/java里面的目录层次,Class和src/java中的路径必须一致。 五、引入openfire项目 右击openfire项目,选择New->Source Folder,在Floder name中选择到刚刚新增的插件目录,注意要选到src/java这一层 六、修改类文件 SubscriptionPluginUF是完全copy SubscriptionPlugin的,因此有两个类名不符的error修改一下. 至此,整个openfire已经把我们新加的SubscriptionPluginUF包含在他的plugins中了,通过控制台也能看到一个仿冒的SubscriptionPluginUF插件 七、单独编译插件 如果每次都运行plugins,生成所有插件的同时生成我们修改的插件,固然可行,就是慢了一点,插件有什么错误也要找半天。Openfire还很贴心的给了只生成我们想要的插件的ant 指令— plugin,我们要做的工作就是告诉ant,我们的目标插件名是 SubscriptionPluginUF。 增加一个plugin的property,这样只需要点击plugin,就能生成我们的插件了。P.S.openfire插件的目录和文件组织 请参考/documentation/docs/plugin-dev-guide.html

基于XMPP协议和Openfire的即时通信系统的开发

万方数据

万方数据

万方数据

基于XMPP协议和Openfire的即时通信系统的开发 作者:潘凤, 王华军, 苗放, 李刚 作者单位:潘凤(成都理工大学信息工程学院,四川,成都,610059;运城学院计算机科学与技术系), 王华军,苗放(成都理工大学信息工程学院,四川,成都,610059), 李刚(华商世纪(北京)科贸发 展股份有限公司) 刊名: 计算机时代 英文刊名:COMPUTER ERA 年,卷(期):2008,(3) 被引用次数:1次 参考文献(5条) 1.许鼎即时通信四种协议简述 2003 2.庞怡即时通讯工具现状及发展趋势分析[期刊论文]-科技情报开发与经济 2006 3.Jason Kichten.李军用基于XML的即时消息开发Jabber 2003 4.Peter S A XMPP Instant Messaging and Presenee 2004 5.Jabber官方组织"Jabber::Protocol" 相似文献(6条) 1.学位论文付莎基于XMPP协议企业级IM的研究与实现2009 近年来即时通信技术的飞速发展使即时通信工具的应用更为广泛,给个人的网络生活、企业的日常办公都带来了极大的便利性与高效性。XMPP( eXtensible Messaging and Presence Protocol)可扩展消息与出席协议技术便是其中较为活跃的一种即时通信技术。由于即时通信工具在企业中的应用给企业的运营管理带来诸多便利,因而在企业中的应用越来越广泛,具有很高的研究与应用价值。 目前常用的即时通信软件的协议种类繁多,本文在研究比较了当前流行的几种协议之后,选用了基于可扩展标记语言XML的XMPP协议,由于其开放性、扩展性、安全性良好等诸多优势,并可以实现与使用其他协议的即时通信软件的互联互通,且发展前景良好,因而对于开发一款企业级即时通信系统有着十分明显的优势。本文从对XMPP协议的介绍与分析入手,首先简要介绍了XMPP协议及其发展,XMPP协议的特点,然后又深入介绍了XMPP协议的内容:XMPP协议的系统构架、地址空间、数据的传输结构、以及通信链路的建立过程等。在对协议进行了深入研究的基础上,根据本文的研究目标,针对企业级即时通信系统的特点进行需求分析,并设计与实现。在实现了即时通信的消息收发、名册管理、出席信息的交换等基本功能的基础上,着重研究了用户的管理控制问题、权限划分、可追溯性管理及功能性、扩展性的要求,实现了会议功能、文件传输,以及广播功能,模拟了与非XMPP系统进行交互的过程。在开源软件系统Openfire及Gloox库的支持基础上,最终设计并实现了一套完善的面向企业级的即时通信系统。 最后对系统进行了测试,完成了测试平台的搭建工作,建立相应的测试用例。系统实验测试的结果表明:系统功能完善、稳定,界面友好简洁,满足企业级即时通信系统的需求。 2.学位论文招俏春基于XMPP协议的即时通讯系统的研究2008 随着互联网的普及和发展,即时通讯已经成为人们交流的重要手段。目前有许多的IM系统,如AOL IM、Yakoo IM和MSN IM,它们使用了不同的技术,而且它们互不兼容。XMPP/Jabber的提出打破了传统即时通信系统之间无法实现互联互通的局面。XMPP对于即时通信是一个开放的基于xml的数据模型和协议,采用了分布式的网络体系机构,模块化可扩展的系统架构,使得扩展它的功能变得简单。 利用Jabber/XMPP的体系结构,构建了一个基于XMPP协议的即时通信系统,包括即时通信系统的客户端和服务器。其中服务器采用开源的Jabber服务器Openfire,客户端基于XMPP核心及扩展协议利用Google Talk的开发包libjingle进行研究开发。设计了一个与Openfire互联通信的客户端系统,实现与客户音的文字、语音、视频、文件及实时数据通信功能;研究了XMPP协议及其在协同通讯领域的应用。 介绍了即时通讯的现状、发展趋势,分析了客户端软件的开发环境和所要用到的几个相关技术。在此基础上设计出基于)(MPP协议的能与Jabber服务器Openfire实现互通的客户端软件的总体架构和基本模型,并对即时通讯客户端的具体设计进行了全方位的阐述:在XMPP流通信基础上的文字通信及扩展的群组通讯;基于JEP扩展协议Jingle协议完善了系统功能,进行了客户问的P2P(Peer-to-Peer,点对点)连接扩展,从而实现了可靠的实时语音视频、文件、实时数据等P2P通信。另外还对客户端设计中的几个关键问题,网络安全机制和带NAT的防火墙穿越等方面的进行了较为深入的研究,并论述了本系统所采用的方案。最后总结了本设计的工作与成果,并提出下一阶段的研究设想。 3.期刊论文路璐.王华军.苗放.李刚.Lu Lu.Wang Huajun.Miao Fang.Li Gang基于Jingle协议及Opnefire的语音通信原理与实现-办公自动化(综合版)2007(12) 本文对Jingle协议及Openfire开源项目进行研究和分析,在此基础上进行点对点语音通信原理的分析和实现,并指出该通信方式的优点和不足. 4.学位论文罗伟基于Android平台的即时通讯系统的研究与实现2009 随着移动通信与Internet的飞速发展及相互融合,GPRS使无线网络高速接入到Internet成为现实,移动用户从而可以享受到Internet提供的服务。即时通讯是基于互联网协议的应用程序,它能够使应用不同设备的用户进行通信,随着手机的不断普及以及性能的不断提升,为即时通讯系统从传统的PC机到手机的移植提高了很好的条件。而且在中国庞大的手机用户中,通过手机使用即时通讯软件的用户越来越多。当前的手机操作系统都过于封闭 ,各大即时通讯软件采用的通讯协议也不统一,而Android是基于Linux的开源的手机操作系统平台,XMPP是基于XML的开源的即时通讯协议,因此基于Android平台和XMPP协议开发即时通讯系统具有很好的应用前景。 本文给出了系统的研究背景,对当前手机操作系统、即时通讯软件和即时通讯协议的发展现状做了简单的介绍。进而详细的分析了Android的特征、架构以及Android应用的构成和工作机制,并对Android与其他手机操作系统进行了比较,说明了Android在手机操作系统中的优势。提出了系统的架构 ,以及系统服务器端和客户端的解决方案,采用开源的Openfire作为系统的即时通讯平台,实现移动客户端之间的即时通讯。对系统客户端的组成模块进行了介绍,对即时通讯协议XMPP以及系统的通讯机制进行了分析。针对当前通信数据的安全问题并结合本系统的特点,对IDEA数据加密算法进行了改进,提出了A—IDEA算法的设计,并对两种算法从几个方面进行了对比分析,对于图片文件的加密,采用A—IDEA与RSA算法相结合的方案。对服务器的运行流程进行了分析并对系统客户端进行了详细的设计与实现,对系统进行了部署和测试。 5.期刊论文剧忻.苗放.JU Xin.MIAO Fang基于MINA开发高性能网络应用程序——以实现XMPP协议

关于接插件必须掌握的基本知识

接插件的基本常识<接插件的功能:为下列传递服务提供可以拆分的联结 a) 电流连接 b) 电信号连接 c) 光信号连接< 不同的标准把连接区分为联结器和联结接插件,定义(根据德国及欧盟标准DIN EN 61984 (VDE 0627)) 连接器 -- 用来和它相对应的器件进行电路连接及脱离的电子组件.(没有电压差的情况下. ) 接插件 -- 联结器带开关功能和联结器设计为特定的在带负载情况下联结和分离的器件 -- 在次标准中,所谓“带电压差”是指当器件带电压差,但还没有电流通过, -- 定义“ 负载”是指电流通过器件.

接插件的基本常识对于高手来说根本就不算什么问题,但是对于像我这样出校门不久的来说却一直让我头痛,而对于插件这一块我一直都比较感兴趣的,在21ic、以及电子元件技术网上查找了不少资料终于整理成了这篇还算让自己满意的新手教程。而对于连接器我同样有着自己个人的看法: 连接器的概念 历史背景:1926第一个批量生产的联结器:4> 一对二的插座(香蕉插座)

< DIV class=resizeimg4>
连接器的类型有那些?
连接器市场上存在着很多不同类型和针对不同用途的连接器,我们可以根据用途, 连接器类型区分, 当然同一种连接器也可以使用到不同用途的场合,例如:电路板的连接器可以在计算计/配件, 医疗技术,信号传递和运输领域- 几乎是所有已知的领域 (图片来自我爱方案网)连接器的用途和市场: ?汽车?军用和航空航天
?通讯和数据传输?消费产品
?运输?医疗技术 ?计算机及其配件?工业自动化

spark+openfire 源代码部署

spark+openfire二次开发(一) 文章分类:Java编程 1.准备工作: 到官网上下载Openfire 3.6.4,并通过svn下载openfire、Spark和SparkWeb 的源代码 官网地址如下: https://www.doczj.com/doc/498920243.html,/downloads/index.jsp 注意官网上最新的Spark版本是2.5.8,其jdk环境最好使用1.6的版本。 2.环境搭建——spark源码安装配置 双击openfire_3_6_4.exe进行openfire的安装,安装过程很简单,不介绍了。 本例的开发环境是基于Eclipse的。 1)选择File——New——Project——Java Project。 输入项目工程名spark Contents中选择"Create project from existiing source",然后把spark 文件所在的文件夹加进去..

点击Finish。 2)生成Spark: 点击Window::Show View::Ant 右击Ant面板,选择Add Buildfiles 展开spark::build文件夹,选择build.xml,点击"OK" 在Ant面板,展开Spark,双击"release",等一段时间,会提示"Build Successful"。 3)运行Spark: 点击Run::Open Debug Dialog...,出现"Run"窗口 选择"Java Application",右键点击"New"按钮. 在"Main"标签页,将New_configuration换成Spark. 点击Project::Browse按钮,选择Spark,再点OK.

各种插件软件安装方法

各种插件软件安装方法 Thinkinetic Pulldownit Pro v2.1 For Maya (PDI破碎) 1.解压压缩包,双击打开Pulldownit_Pro_v 2.1_For_Maya_2010-2013_Win64bit.rar 里面提供了Maya2010-2013,四种安装版本,在这我选择了2012版本安装。 2.Ctrl+C复制Pdi_Pro_2.1_Maya2012x64文件夹,找到hxsd-我的文档-maya-2012x64 这个文件夹。把Pdi_Pro_2.1_Maya2012x64文件夹Ctrl+V粘贴在这里。 3.双击打开Pdi_Pro_2.1_Maya2012x64文件夹,找到pdiMaya文本,双击打开, 修改路径+ Thinkinetic 2.0 C:\Users\hxsd\Documents\maya\2012-x64\Pdi_Pro_2.1_Maya2012x64 并保存关闭。 4.此时在复制一份刚刚保存好的pdiMaya,并在maya根目录(C:\Users\hxsd\Documents\maya)下 新建文件夹modules,打开modules把pdiMaya放在里面。 5.重新打开Maya加载插件 blastcode1.7_for_maya2009_2011_64bit (只能在11以前版本使用的NURBS破碎) 1.找到插件所在文件夹,双击BlastCodeInstall_Trial17x64 2.一路欢脱的点击next,agree等,就能完成安装 3.重新打开Maya2009,就能在菜单栏里找到“Blast Code”菜单. 4.enjoy it! 3delight-10.0.4-setup-x64 1.双击3delight-10.0.4-setup-x64,选择English语言,并点击OK,进行下一步。 2.点击next,并选择I accept the agreement。

OpenFire环境搭建说明文档

OpenFire环境和 插件开发说明文档 1概述 1.1编写目的 本文档旨在为在Windows系统下快速构建Openfire开发环境和集成插件环境进行相关说明。期望读者为Openfire开发人员和Openfire 服务器测试、维护人员。 1.2术语说明 Openfire服务器:基于XMPP(jabber)协议的开源实时协作(RTC)服务器,采用Java语言开发。可快速构建企业级的高效及时通信服务器。 Openfire插件:Openfire的可扩展应用服务模块,单个插件可通过Openfire的后台管理功能进行管理、发布、升级。 2准备资料 2.1运行环境 1.JDK:jdk 1.5以上,建议采用jdk1.6以上版本。版本基于操作 系统x86/x64确定。目前服务器采用x86 版本jdk1.6.0_01。

2.Mysql:Mysql5.0以上,建议采用mysql5.5以上版本。 2.2资源文件 Openfire源文件:Openfire版本【Openfire3.7.1】 3结构说明 3.1项目结构

服务器部分: a)src/java:Openfire服务器源代码 b)src/plugins:Openfire插件源代码 c)build:build.xml Openfire服务器编译打包脚本 d)documentation:安装开发说明文档和javadoc e)resources:国际化资源文件 f)src:源文件其它资源 g)target:编译后的Openfire服务器 h)work:开发环境Openfire工作目录 自定义部分: a)ant:plugin-utils.xml 自定义帮助类编译打包脚本 b)build:build-utf8.xml utf8格式Openfire服务器编译打包脚本 c)plugin-jar:自定义插件存放目录,从target/openfire/plugins/ 下拷贝,主要为提交到SVN服务器 d)src/plugins/rosterservice/src/java:关系服务插件源文件 e)src/plugins/accountservice/src/java:账号服务插件源文件

最全AE基础知识大全

AE基础知识大全 1. AE层模式(混合模式)介绍 在时间线上,通过按下时间线窗口左下角不同的层展开/折叠开关按钮,可以展开层控制和层模式面板,按下快捷键F4,时间线窗口会在层面板和层模式面板之间进行切换,在层模式面板Mode栏中可以选择不同的层叠加方式: Normal正常模式、Dissolve溶解模式、Dancing Dissolve动态溶解模式、Darken变暗模式、Multiply正片叠底模式、Linear Burn线性加深模式、Color Burn颜色加深模式、Classic Color Burn 为兼容早版本的Color Burn模式、Add增加模式、Lighten变亮模式、Screen屏幕模式、Linear Dodge线性减淡模式、Overlay叠加模式、Soft Light柔光模式、Hard Light强光模式、Liner Light 线性加光模式、Vivid Light清晰加光模式、Din Light阻光模式、Hard Mix强光混合模式、Difference差别模式、Classic Difference兼容老版本的差别模式、Exclusion排除模式、Hue色相模式、Saturation饱和度模式、Color颜色模式、Luminosity高度模式。 上面所列的层模式,是通上下层的颜色通道混合产生影响变化,而下层的层模式则是通过层的Alpha通道影响混合变化。 Stencil Alpha:Alpha通道模式 Stencil Luma:亮度模式 Slihouette Alpha:Alpha通道轮廓 Slihouette Luma:亮度轮廓 Alpha Add:Alpha添加 Luminescent Premul:冷光模式。 2. AE的视频转场特效 Transition切换Block Dissolve块面溶解Card Wipe卡片擦拭Gradient Wipe渐变擦拭Iris Wipe星形擦拭Linear Wipe线性擦拭Radial Wipe径向擦拭Venetian Blinds百叶窗Transition Completion转场完成度 Block Width块状的宽度Block Height块状的高度Feather羽化Soft Edges(Best Quality)边缘羽化

Openfire+Spark+Spark Web安装配置

Openfire+Spark+Spark Web安装配置 一.安装环境 操作系统:Windows XP Prefessional SP2 服务器软件:Openfire 3.4.2 Openfire Enterprise 3.4.2 客户端软件:Spark 2.5.7 Spark Fastpath Webchat 3.4.1 JDK:J2SE 5.0 (1.5.0_03) 二.安装Jabber服务器软件 2.1 软件下载 Jabber官网地址:https://www.doczj.com/doc/498920243.html,/ 常用Jabber服务器软件:https://www.doczj.com/doc/498920243.html,/software/servers.shtml 本文以Openfire(Wildfire)为服务器,一款基于GPL协议开源软件,支持各种操作系统,软件需要java环境支持,不过软件本身自带了环境包,你可以根据你的需要下载不同的版本。 下载地址:https://www.doczj.com/doc/498920243.html,/downloads/index.jsp#openfire Windows无java环境版本地址: https://www.doczj.com/doc/498920243.html,/downloadServlet?filename=openfire/openfire_3_4_ 2.zip 最新版本:Openfire 3.4.2 2.2Windows版本安装 将openfire_3_2_2.zip解压缩到D:\。特别要注意,openfire的全路径中不能有中文字符,最好主机名也是标准点的英文名称。直接运行安装文件, D:\Openfire\bin\openfire.exe

Openfire安装配置

一、环境 操作系统:Windows XP SP3 Web服务器:Tomcat 6.0.18.0 Java Version:1.6.0_21 Jvm Version:1.6.0_21-b07 Openfire服务器:Openfire 3.7.0 Openfire Plugin:Fastpath Service 4.2.0 Fastpath Webchat 4.0.0

二、Opernfire环境安装配置 1. Openfire下载 目前最新版为3.7.0 下载地址:https://www.doczj.com/doc/498920243.html,/downloads/index.jsp 分为两个版本,一个是包含了JRE的安装版本,另外一个是不包含JRE的版本。也可以分别通过下面两个链接直接下载。 https://www.doczj.com/doc/498920243.html,/downloadServlet?filename=openfire/openfire_3_7_0.exe https://www.doczj.com/doc/498920243.html,/downloadServlet?filename=openfire/openfire_3_7_0.zip 2. Openfire安装 将下载的openfire_3_7_0.zip解压。Openfire的全路径中不能有中文字符,最好主机名也是标准点的英文名称。 3. 运行Openfire服务器 直接运行服务器文件。安装目录\Openfire\bin\openfire.exe。 出现启动界面

点击“Launch Admin”,或者在浏览器地址栏输入http://127.0.0.1:9000,进入Opernfire 管理控制台。 初次会进入Openfire设置界面,对Openfire进行初始设置。 3. Openfire初始设置 3.1 语言选择:中文(简体)

电路板插件一般操作规范和注意事项

电路板插件,浸锡,切脚的方法及流程1,电路板插件,浸锡,切脚的方法 1.制板(往往找专门制板企业制作,图纸由自己提供)并清洁干净。 2.插横插、直插小件,如1/4W的电阻、电容、电感等等贴近电路板的小尺寸元器件。 3.插大、中等尺寸的元器件,如470μ电解电容和火牛。 4.插IC,如贴片IC可在第一步焊好。 原则上来说将元器件由低至高、由小至大地安排插件顺序,其中高低原则优先于水平尺寸原则。 若手工焊接,则插件时插一个焊一个。若过炉的话直接按锡炉操作指南操作即可。切脚可选择手工剪切也可用专门的切脚机处理,基本工艺要求就是刚好将露出锡包部分切除即可。 若你是想开厂进行规模生产的话,那么还是建议先熟读掌握相关国家和行业标准为好,否则你辛苦做出的产品会无人问津的。而且掌握标准的过程也可以帮助你对制作电路板流程进行制订和排序。 最后强烈建议你先找个电子厂进去偷师一番,毕竟眼见为实嘛。 2,浸焊炉工作原理 钎料锅中的钎料被浸焊炉加热熔化,达到规定的温度; 待焊工件或待焊工件的待焊部位被清理,沾助焊剂; 待焊工件或待焊工件的待焊部位浸入浸焊炉的钎料锅中,待焊部位被加热到钎料熔点以上; 由于亲和力的作用,钎料附着于工件待焊部位; 工件取出冷却,浸焊完成。 不同种类的浸焊温度相差悬殊,铁匠本身也不内行。

用30锡浸焊水箱时,锡温约350度。 热电偶配数显温控器控制加热管。 3,浸焊、切脚、波峰焊作业指导 一、生产用具、原材料 焊锡炉、排风机、空压机、夹子、刮刀、插好元器件的线路板、助焊剂、锡条、稀释剂、切脚机、斜口钳、波峰焊机。 二、准备工作 1、按要求打开焊锡炉、波峰焊机的电源开关,将温度设定为255-265度(冬高夏低),加入适当锡条。 2、将助焊剂和稀释剂按工艺卡的比例要求调配好,并开起发泡机。 3、将切脚机的高度、宽度调节到相应位置,输送带的宽度及平整度与线路板相符,切脚高度为1-1.2mm,将切脚机输送带和切刀电源开关置于ON位置。 4、调整好上、下道流水线速度,打开排风设备。 5、检查待加工材料批号及相关技术要求,发现问题提前上报组长进行处理。 6、按波峰焊操作规程对整机进行熔锡、预热、清洗、传送调节速度与线路板相应宽度,直到启动灯亮为止。 三、操作步骤 1、用右手用夹子夹起线路板,并目测每个元器是否达到要求,对不达到要求的用左手进行矫正。 2、用夹子夹住插好件的线路板,铜泊面喷少许助焊剂,用刮刀刮去锡炉锡面上的氧化层,将喷好助焊剂的线路板铜泊面浸入锡炉,线路板板材约浸入0.5mm,浸锡时间为2-3秒。 3、浸好锡后,手斜向上轻提,并保持平稳,不得抖动,以防虚焊、不饱满。 4、5秒后基本凝固时,放入流水线流入下一道工序。

openfire插件开发

作用:初始化时在控制台打印测试消息。 开发环境:winxp/myeclipse6.5/jdk1.5&1.6/mysql5.0/openfire3.6.3 QQ群:28588322 (openfire专题研究小组) 开发步骤: 1. 布署openfire3.6.3源码(请参考openfire3.6.3导入eclipse项目实现方法) 结构如下: 2. src/plugins目录下新建文件夹itvi。并按下图的目录结构新建对应的文件。 plugin.xml文件代码如下:

org.jivesoftware.openfire.plugin.Itvi Itvi Broadcasts messages to users. openfireteam 1.7.0 2/19/2009 https://www.doczj.com/doc/498920243.html, 3.6.3 Itvi.java文件代码如下: package org.jivesoftware.openfire.plugin; import org.dom4j.Element; import org.jivesoftware.openfire.IQHandlerInfo; import org.xmpp.packet.*; import org.jivesoftware.openfire.handler.IQHandler; import org.jivesoftware.openfire.auth.UnauthorizedException; /** * 处理客户端发来的IQ,并回送结果IQ * * @author Phoenix * * Mar 14, 2008 4:55:33 PM * * version 0.1 */

openfire学习笔记

一、概念 1、OpenFire Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。 可以使用它轻易的构建高效率的即时通信服务器。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。 由于是采用开放的XMPP协议,可以使用各种支持XMPP协议的IM客户端软件登陆服务。 2、XMPP(Jabber)协议 1、介绍 XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP 的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP 包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。 2、XMPP协议的优点 a. XMPP 协议是公开的,由JSF开源社区组织开发的。 b. XMPP 协议具有良好的扩展性。 c. 分布式的网络架构。 d. XMPP 具有很好的弹性。 e. 安全性。 3、XMPP消息格式 XMPP中定义了3个顶层XML元素: Message、Presence、IQ,下面针对这三种元素进行介绍。 用于在两个jabber用户之间发送信息。Jsm(jabber会话管理器)负责满足所有的消息,不管目标用户的状态如何。如果用户在线jsm立即提交;否则jsm就存储。 To : 标识消息的接收方。 from : 指发送方的名字或标示(id) Text: 此元素包含了要提交给目标用户的信息。 结构如下所示: 你好,在忙吗 用来表明用户的状态,如:online、away、dnd(请勿打扰)等。当用户离线或改变自己的状态时,就会在stream的上下文中插入一个Presence元素,来表明自身的状态.结构如下所示: From =‘lily @ https://www.doczj.com/doc/498920243.html,/contact’

openfire源代码研究

Openfire源码研究 Openfire源码目录结构 1.build目录:build目录下收录的是生成安装文件(例如:rpm)所要的一些文件,例如JRE等。 2.resources目录:resources目录下收录的是一些为实现国际化(i18n)和本地化的一些编码文件(例如:英文,中文,法文,德文等)。 3.documentation目录:documentation目录下收录的是一些关于Openfire安装和配置的信息,但最终要的是这里有Openfire开发的Javadoc。 4.src目录:顾名思义这个src文件夹就是我们想要的Openfire源代码了,这下面又有许多文件夹,我们只要Java文件夹就好,这里面实现的Openfire的核心功能,通过它就可以调试Openfire了。 命名规则 Openfire中常见的类名后缀命名包括Starter、Plugin、Listener、Dispatcher、Handler、Manager、Provider,通常情况下,这些命名类包括如下意义: XXStarter 系统启动类,如org.jivesoftware.openfire.starter.ServerStarter,调用其start()方法可启动系统应用。 XXListener 业务的最终处理类。 XXDispatcher 调度类,其中有很多关键方法,如addListener(),以组合的方式,为类内定义的静态Set实例添加XXListener对象。以便调用dispatchEvent(String property, EventType eventType, Map params)方法遍历处理Set集中的XXListener对象(通过调用XXListener对象的各实际方法完成实际业务)。 XXPlugin 实现Plugin接口的插件类,需实现initializePlugin(PluginManager manager, File pluginDirectory)方法和destroyPlugin()方法。在其初始化方法中调用Dispatcher实现类的addListener()方法如PropertyEventDispatcher.addListener(this)。 XXProvider 实现面向接口编程方式的接口类,通过反射机制创建具体实现类的对象,反射类名配置在ofproperty表对应的记录propvalue属性中。若没有相关配置,则调用默认实现类,默认实现类类名命名规则为DefaultXXProvider。 XXHandler 实际处理类,以ConnectionHandler为例,在org.jivesoftware.openfire.spi. ConnectionManagerImpl类的startClientSSLListeners(String localIPAddress)方法中,有这样一段代码:sslSocketAcceptor.bind(new InetSocketAddress(bindInterface, port), new ClientConnectionHandler(serverName));其中bind方法的第二个参数是新创建的一个ClientConnectionHandler的实例,而它就是ConnectionHandler的一个子类。

接插件基础知识之连接器的三大基本性能

接插件基础知识之连接器的三大基本性能 2005年8月1日 9:36 连接器的基本性能可分为三大类:即机械性能、电气性能和环境性能。 1.机械性能就连接功能而言,插拔力是重要地机械性能。插拔力分为插入力和拔出力(拔出力亦称分离力),两者的要求是不同的。在有关标准中有最大插入力和最小分离力规定,这表明,从使用角度来看,插入力要小(从而有低插入力LIF和无插入力ZIF的结构),而分离力若太小,则会影响接触的可靠性。 另一个重要的机械性能是连接器的机械寿命。机械寿命实际上是一种耐久性(durability)指标,在国标GB5095中把它叫作机械操作。它是以一次插入和一次拔出为一个循环,以在规定的插拔循环后连接器能否正常完成其连接功能(如接触电阻值)作为评判依据。 连接器的插拔力和机械寿命与接触件结构(正压力大小)接触部位镀层质量(滑动摩擦系数)以及接触件排列尺寸精度(对准度)有关。 2.电气性能连接器的主要电气性能包括接触电阻、绝缘电阻和抗电强度。 ①接触电阻高质量的电连接器应当具有低而稳定的接触电阻。连接器的接触电阻从几毫欧到数十毫欧不等。 ②绝缘电阻衡量电连接器接触件之间和接触件与外壳之间绝缘性能的指标,其数量级为数百兆欧至数千兆欧不等。 ③抗电强度或称耐电压、介质耐压,是表征连接器接触件之间或接触件与外壳之间耐受额定试验电压的能力。 ④其它电气性能。 电磁干扰泄漏衰减是评价连接器的电磁干扰屏蔽效果,电磁干扰泄漏衰减是评价连接器的电磁干扰屏蔽效果,一般在100MHz~10GHz频率范围内测试。 对射频同轴连接器而言,还有特性阻抗、插入损耗、反射系数、电压驻波比(VSWR)等电气指标。由于数字技术的发展,为了连接和传输高速数字脉冲信号,出现了一类新型的连接器即高速信号连接器,相应地,在电气性能方面,除特性阻抗外,还出现了一些新的电气指标,如串扰(crosstalk),传输延迟(delay)、时滞(skew)等。 3.环境性能常见的环境性能包括耐温、耐湿、耐盐雾、振动和冲击等。

Openfire_spark_安装手册

Openfire+Spark安装手册 王保政 QQ:29803446 Msn:baozhengw999@https://www.doczj.com/doc/498920243.html, 关键字:快速开发平台openjweb 增删改查即时通信 2009-8-29

目录 第一章JA VA领域的IM解决方案 (3) 第二章安装OPENFIRE3.6.4 (3) 2.1配置机器的域名 (3) 2.2安装OPENFIRE (3) 2.2.1 安装 (3) 2.2.2 运行数据库脚本 (4) 2.2.3 数据库驱动jar包 (6) 2.2.4 openfire初始化配置 (6) 2.3设置用户 (12) 第三章安装SPARK客户端 (13) 第四章配置MSN网关 (15) 4.1服务端配置MSN网关 (15) 第五章RED5视频配置 (18) 5.1部署RED5.WAR (18) 5.2 SPARK客户端配置视频插件 (19) 第六章使用SMACK开发即时通信功能 (22)

第一章Java领域的IM解决方案 Java领域的即时通信的解决方案可以考虑openfire+spark+smack。当然也有其他的选择。Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.6.4版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码。 即时通信客户端可使用spark2.5.8,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn网关支持上可能有问题,所以选择openfire3.6.4+spark2.5.8是最合适的选择。 Smack是即时通信客户端编程库,目前我已测通通过jsp使用smack的API向openfire 注册用户发送消息,并且可以通过监听器获得此用户的应答消息。 通过smack向msn用户和QQ用户,gtalk用户发送消息应该也可以实现,关于向gtalk 用户发送消息的例子较多。这个留待以后研究。至少目前可以通过程序向spark发消息了。对于局域网内部应用足以解决系统与用户交互的问题,甚至可以做自动应答机器人。 Spark支持聊天,语音,视频,会议,文件收发,截屏,连接msn等功能。 第二章安装openfire3.6.4 2.1 配置机器的域名 使用openfire需要配置机器的域名。如果局域网内没有安装域服务器,则需要手工为机器配置域名,打开C:\WINDOWS\system32\drivers\etc\hosts文件,增加一新行: https://www.doczj.com/doc/498920243.html, (用户根据自己的需要可配置称别的名字,但最好符合带.的域名格式) 其他机器使用域名访问openfire,也需要在C:\WINDOWS\system32\drivers\etc\hosts中指定https://www.doczj.com/doc/498920243.html,对应的ip地址,假设安装openfire的主机IP为192.168.1.10,则hosts文件中应增加一新行: 192.168.1.10 https://www.doczj.com/doc/498920243.html, 通过这种方式指定主机域名,建议安装openfire的机器配置静态ip地址以免ip发生改变。 2.2 安装openfire 2.2.1 安装 安装程序为openfire_3_6_4.exe,运行后,语言选择简体中文,见下图:

接线端子插接插件和各类连接器的基础知识

接线端子和各类连接器的基础知识 接线端子用于将分开的电路连接到一起。通常这些连接器用于常需要切换和断开的场合,如连接电源,连接外围电路,或者需要更换的扩展部分。 在本教程中,我们将介绍下面主题 ?关于接线端子的常见术语 ?将接线端子进行区别分类 ?介绍上述分类之间的区别 ?介绍如何使用极性防反的接线端子 ?介绍如何使用极性防反的接线端子 在您开始阅读本文之前,请确保您已经知道或者学习了以下教程中所罗列的内容:

在我们开始讨论一些常用的连接器之前,让我们来探讨用于描述接线端子的术语。 公母端子Gender–接线端子的公母性说明了它是用来插入还是被插入的。(哈哈,如果你还是单纯的孩子,更详细的解释估计你得去问问你父母)遗憾的是,有些被称为公头的端子,实际上是按照母头的端子来使用的。在接下来的示例中,我们将将说明这些缘由。 Male and female 2.0mm PH series JST connectors 左边公右边母的 2.0mm PH系列的JSP接线端子 极性-大多数接线端子有约定的极性方向。这种特性使得接线端子可以防止接反。 North America wall plug 有极性的美规墙上插头。通过为插头叶片两种不同的宽度,插头只能单向进入插座

触点-触点是接线端子真正起作用的功能部分。它们是彼此接触的金属部件,形成电气导通的连接。这里也往往是导致连接不良的地方:触点可能变脏或氧化、或者金属弹片的弹性随时间蠕化变小而将导致触点松脱或连接不可靠。 ADH8066 mating connector 该连接器上的触点清晰可见。 间距–许多连接器由重复排列的一组触点组成。连接器的间距是从一个触点的中心到下一个触点的中心的距离。这一点很重要,因为有许多接线端子外观和触点看起来非常相似,但间距可能不同,所以往往一个型号系列的端子仅仅因为这个参数不同而不同,因此在不知道此参数情况下,很容易在购买了不能配对连接端子。

MQTT协议之Apache Apollo 安装使用

MQTT协议之Apache Apollo 安装使用 Apache Apollo是一个代理服务器,其是在ActiveMQ 基础上发展而来的,可以支持STOMP, AMQP, MQTT, Openwire, SSL, and WebSockets 等多种协议。 Apollo允许客户端通过开放的MQTT协议连接。该协议主要是用在资源有限的驱动上,以及网络不稳定的情况下使用,是一个订阅、发布模型。这种驱动通常不适用类似http,stomp这类基于文本,或者类似openfire,AMQP等传统二进制协议。MQTT是一个简介的二进制协议,适用这类驱动资源受限,而且是不稳定的网络条件下。之前的稳定发布版本中,MQTT是作为一个Apollo的一个插件提供的。但是现在,这个插件已经变为开发项目的一部分。MQTT在Apollo 中已经不需要其他配置文件或者是第三方插件支持了。 MQTT是一个线路层的协议,任何实现该协议的客户端都可以连接到Apollo。当然也可以整合其他MQTT兼容的消息代理中。 更多有关MQTT协议内容,参考the MQTT Specification MQTT协议配置

为了开始使用MQTT协议,首先使用MQTT3.1协议的客户端,连接到Apollo正在监听端口。Apollo会做协议检测,而且自动识别MQTT连接,而且将连接作为MQTT协议处理。你不必要为MQTT协议打开一个端口(STomp,Openfire,AMQP等都是自动识别)。如果你一定指定连接的协议,有下面两种方式:你可以选择不用协议识别,而是为MQTT指定连接: <connector id="tcp" bind="tcp://0.0.0.0:61613" protocol="mqtt"/> 或者你可以限制哪种协议可以被自动识别。通过下面的 <detece>配置方式: <connector id="tcp" bind="tcp://0.0.0.0:61613"> <detect protocols="mqtt openwire" /> </connector> <detect> 下protocols 对应的参数通过空格来隔开支

相关主题
文本预览
相关文档 最新文档