当前位置:文档之家› 3dmaxs插件rayfire中文学习手册

3dmaxs插件rayfire中文学习手册

3dmaxs插件rayfire中文学习手册
3dmaxs插件rayfire中文学习手册

下载PhysX Plug-In for Autodesk 3ds Max插件,这是PhysX引擎对max的插件,Rayfire 动力学引擎缺它不可,网页地址:https://www.doczj.com/doc/7d891356.html,/physx

3DS MAX界面中RayFire Tools 组件分布和参数详解1.1 Create面板——Geometry 几何体分类RayFire Tool,通过这里你可以打开RayFire Tool的主面板

首先,因本人好久没怎么用Rayfire破碎工具,好像从1.46版本shooting就从原来的插件中给擦除掉了,因此,好多人去官网讨说法,官方说,后续的版本会更新进来,现在大家看

到shooting从1.58就单独的为其设置个卷展览界面。这点做的还是不错的。也强化添加了很多功能。

1.2 Create面板——Helpers辅助物体分类RayFire Tool,通过这里你可以访问RayFire 两个动力学辅助物体,RF_PhysX以及RF_Bomb。一个用于动画使用PhysX引擎时动画PhysX的参数,一个用于动力学模拟时作为炸弹,计算爆炸效果。

菜单栏这里就不多介绍了。1.57版本中菜单栏第一个Execution这个功能不在菜单栏

中出现,重点看下各个控制组.

Objects Dynamic/Impact Objects(动态/影响物体)在这个卷展览可以定义动态/影响对象。

动态对象是几何对象您希望模拟、碎片或拆除。

您可以使用动画动态对象,在本例中物理运算引擎将物体的初始速度在模拟开始框架和继续它。所以,如果你想把抛出对象就得当对象移动时开始模拟

注意,每次当你片段或拆除动态对象,RayFire创建动态对象的副本,隐藏原始对象和使用副本作为模拟。

当你删除模拟层通过交互层通道,RayFire删除对象从选定的层和取消隐藏原始对象。如果你不需要在原始的动态对象,您可以删除它们选择“删除所有原始对象”在工具菜单。

工作列表

每个列表的RayFire工具有三个按钮:添加、清除和菜单。

Add(添加):鼠标左键单击Add按钮以添加到列表中选择的物体。右键单击Add按钮打开选择面板窗口选择对象内部漂浮物。

Clear(清除):鼠标左键单击Clear按钮来删除对象的列表。如果您想移除从列表中一个对象,你必须选择对象的列表,并右键单击Clear按钮。注意,您可以选择几个对象列表选中可以它们从使用右键点击Clear列表。

Menu(菜单):提供了一些功能,使工作流程更舒适。

菜单:鼠标左键单击菜单按钮打开菜单列表。

Send to Sleeping list(发送到Slepping列表):这个函数只提供动态对象列表。它将发送所有对象的动态列表到Sleeping列表。这可能是有用的,当你需要片段一些对象和发送片段列表很快睡着。

Interactive selection(交互式的选择):这个函数只提供动态对象列表。每一次当你想片段或模拟一些对象,您需要添加这些对象在动态对象列表。在某些情况下这样的工作流程可能降速你工作流程。打开交互式选择之后,将更新动态对象列表RayFire每次当你将选择对象。所以,你可以去碎片选项卡和片段对象只是选择他们,点击片段按钮。

Select Highlighted(选择高光显示)将选择在视口中只有对象列表中选择。

Select All(选择所有)将选择在视窗中的所有对象列表。

Highlight(高亮)将选择列表中选择的对象视图。

Simulation geometry(几何仿真运算):在模拟期间几何物理交互。凸面体使用简化几何的覆盖原始网格,但它是相当快。

Box 盒子Sphere 球体Convex 凸面体Concave 凹面体

Material(材质):材质预置,使用这些快速分配密度、摩擦和反弹之势。

Heavy metal 重合金Light metal 轻金属Dense rock致密岩石

Porous rock 多孔(松质)岩石Concrete 混凝土Brick 砖块

Glass 玻璃Rubber 橡胶Ice 冰Wood 木材

Static&Kinematic Objects(静态&动态物体)在这个卷展览你可以为它们定义静态和运动对象

Static(静态):坚硬的对象可以用作导向板。在模拟过程中它们不会移动。他们可以用作地面或墙壁。静态对象只能通过对象类型的物理运算可以模拟使用原始几何,所以您可以使用嘈杂的凹面体类型,唯一的要求是,对象不应该有动画,否则物理运算引擎将视为是运动的。Kinematic(运动):模拟过程中有动画的对象不能被不断变化地影响。这种对象是有用的,如果你已经有了一些对象和你动画就需要这个对象来推动和拆除其他动态和Sleeping对象的方式,但不受其影响。

两种这样的对象应该添加在这个列表。RayFire将自动设置适当的类型。

其他的属性请参考Dynamic/Impact Objects(动态/影响物体)。

Sleeping Objects(睡眠物体)在这个卷展览你可以为它们定义睡眠对象和物理性质

对象将不会被模拟的作为一部分,直到任何动态或运动物体相撞后,此时物理引擎,将开

始模拟它们作为动态。作为被定义的睡觉对象假如你想开始模拟碰撞后与其他对象。Dead objects(死对象):使所有睡觉的一部分的对象只有在其他对象的仿真把他们拉开,没有碰撞他们再次在空中堆积。简单的方法来创建地面开裂效应或如果在碰撞到一些有重量的打击后可以避免整个墙壁被破坏。

Revive by velocity(赋予速度):使得死对象在碰撞后赋予物体速度的大小控制。

其他的属性请参考Dynamic/Impact Objects(动态/影响物体)。

Material Presets(材质预设)材质预设这里可以官方把物体的属性参数给设置了,

只需要选择想要的材质属性即可。也可以自己定义材质属性。

Density(密度)Friction(摩擦力)Bounciness(反弹性)Solidity(坚固度)

Physics Physical Options (物理选项)在这个卷展览你可以定义物理属性,选择引擎,开始、暂停、停止模拟。

Physical engine(物理引擎):定义所需引擎将计算模拟。目前物理引擎提供了2种分别是PhysX和Bullet(Beta)。

Bullet介绍:大部分的物理引擎都是通过CPU完成物理模拟计算,目前仅有nVIDIA PhysX 可以调用GPU完成物理模拟计算且将其实用化。GPU有着CPU无法比拟的并行计算和浮点计算能力,而复杂的物理模拟计算(例如流体模拟和柔性物体模拟)却十分依赖并行计算能力和浮点计算能力。在与AMD合作后,Bullet Physics物理引擎可以透过OpenCL或者DirectCompute,使用GPU完成物理模拟计算,这也是AMD开放物理计划的内容之一。但是这项计划目前尚没有游戏支持,仅有几个技术演示DEMO。

使用Bullet物理模拟引擎制作的电影不乏好莱坞大作,例如电影2012,基于Bullet

制作有《2012》、《全民超人》、《大侦探福尔摩斯》、《闪电狗》。支持Bullet physics 的设计软件Blender 3D;Cienma 4D;LightWave 3D Core。

Start frame(开始帧): 定义仿真模拟开始帧。

End frame(结束帧):定义仿真模拟结束帧。改变结束帧自动调节将调整时间范围内。Time range(时间范围):定义多少帧会被模拟从开始帧开始。改变时间范围的值将调整结束帧值。

Collision tolerance(碰撞距离):模仿物体之间的碰撞距离,刚体允许部分重叠。设置这个值太大将导致对象明显渗透。设置这个值太小可能会导致对象轮流贯穿一个框架和接下来被强行分离,导致抖动。最好的价值取决于多种因素,包括场景中物体的大小,如何关闭照相机将获得可能的渗透,设置为重力的荷载。(物理运算引擎插件文档)

Substeps(子步值):为物理引擎定义了仿真子步骤。保持它在介于2和10。这是通过彼此需要增强它在案例仿真对象。注意,对于物理运算引擎高价值并不意味着更加稳定和正确的模拟,默认值3将工作在大多数情况下。但是如果你的模拟包含快速移动的物体,你应该增加它。减少它以防你开始注意到“爆米花”效应。

Gravity(重力):预乘默认重力。

Time Scale(时间尺度):预乘为默认的时间尺度。你可以降低这个属性使模拟慢。这个属性不是代表动画,所以如果你想激活时间尺度和创建子弹时间效应在矩阵你需要使用射频物理运算引擎助手。

从左往右

Start preview(预览):点击这个按钮开始模拟预览模式。在模拟将完成了所有模拟对象将恢复他们的位置和动画。检查了如果你想要停止模拟和恢复所有对象的位置。交互式拆迁不能用于预览模式。只有在烘焙模式。

Bake animation(烘焙动画):这个模式的工作方式相同的方式预览模式,但在这种情况下,动画模拟对象的烘焙。核对无误了如果你想要停止模拟和恢复所有对象的位置。Pause(暂停):如果你想暂停模拟和做一些调整,比如添加空间扭曲,改变物理性质等。核对后可以继续仿真。

Stop(停止):点击这个按钮停止模拟和保存当前的结果。

Simulation Properties(仿真运算属性)在这个卷展览下可以定义高级模拟属性。

Deactivate static Dynamic objects(关闭静态动态对象):有目的的选择性的激活他们之后有可能关闭动态对象。RayFire将关闭静态动态对象,这意味着这些对象不应动画或与动画对象。而物体被停用起作用时它就像静态对象。

Deactivate animated Dynamic objects(关闭动画动态对象):另外可以禁用只有动画动态对象。

Activate by Force(激活力场):通过力场激活失效的物体。例如,您可以破碎墙,然后创建RF-Bomb或PBomb有一部分范围接近这堵墙,然后爆炸只是很小的一部分,在爆炸中墙的爆炸范围而所有其他部分墙将模拟为静态对象。

Activate by Geometry(激活几何体):它可以激活对象由一些动画几何以防在特殊时刻你想激活对象的一部分无效的对象。使用这个特性可以通过脚本拆除一些建立起来激活不同的部分在不同的时间。重要的知道对象将释放当它的边界框会牵涉到激活几何的边界框。例如,你想把一些岩石扔到墙上,你想打破这堵墙的很小一部分。在这种情况下,你可以定义所有墙碎片和岩作为动态/影响对象和打开“Deactiva te静态影响对象”,然后打开“激活通过几何”和添加岩石在物理运算影响列表来定义它作为激活几何。当你将开始模拟所有墙片段将无效,因为他们不是动画。当石头靠近墙的碎片时它将会激活他们,正确的碰撞效果。所以,

它与墙壁相撞时,将打破只有部分。

Activate by Mouse(SHIFT pressed)(激活鼠标(按住shift键)):你可以激活对象只是悬停鼠标释放对象要按住SHIFT键。

Other options(其他选项)

Home grid as ground(自带的网格线作为地面):打开无限地平面对齐到网格作为地面。Force strength by mass(力的强度从质量上来):模拟对象将相应地影响到他们的质量。力量更少的对象将影响更难。

Force strength multiplier(力的强度倍增值):全局力量倍增器为所有定义的力。Stick to Mouse strength(黏着鼠标的强度):定义黏着鼠标点击的强度值。Collision damping(碰撞阻力):如果他们相互碰撞减少对象速度。

Motion inheritance(运动继承):乘数为初始速度的动画对象开始时的模拟。

Max linear velocity(最大直线速率):对模拟对象的最大位置速度。0意味着没有任何限制。

Max angular velocity(最大角度速率):最大旋转速度的模拟对象。

Demolition Properties(破坏属性)在这个卷展览可以为各种胶合物和相互作用的破坏的特效定义属性。

交互式拆毁工作只有在烘培动画模式。注意,在开始交互式拆毁仿真,RayFire复制所有

模拟对象,隐藏原始对象,并创建模拟拷贝。

重要的要知道互动拆毁工作连同对象材质,这意味着它考虑材质密度和体积(坚固性)之前决定是否应该拆除对象。例如,如果您将碰撞混凝土和玻璃,RayFire将拆除玻璃但混凝土不会被拆除。您还应该知道金属材质是不可能被拆毁对象。

Demolish geometry(拆毁几何体):激活互动拆除几何对象。

Material Solidity(材质硬度):材质硬度的全局倍增值。例如,如果你想碰撞混凝土玻璃和打破他们,那么你应该减少全局材质的硬度。

Depth Level(深度的层次):定义了多少次每个对象可能是破碎的。1意味着原始对象将被破碎一次,而不是更多。2意味着原始对象被破碎和每次破碎的片段可能会在破碎等等。Depth Ratio(深度比例):将使用碎片从父级它的下一个深度水平来定义了有多少碎片重复。例如,如果您破碎碎片对象重复100次,深比0.4的每个片段将被破碎重复40次。Time Delay(延时):对于新创建的片段定义了“安全”的框架数量的延迟。例如,您设置深

度水平2,你的对象只是破坏和新片段相互碰撞强大到足以进一步的破坏,如果你想保持你的碎片一段时间瞬间重新毁坏增加时间延迟属性。在这种情况下碎片会有一些时间来模拟远离对方,可使重新破坏来的迟一点。

Probability(概率):定义了片段的百分比可供破碎。有时你需要降低坚固度水平得到想要的效果,而由于RayFire破碎几乎所有的碎片在他们第一次碰撞时。在最低体积坚固度的属性,设置概率50%将会节省你50%的碎片相互破碎。

Minimum size limit(最小尺寸范围):如果距离最远的角落的边界框是最小大小值还要小,对象将不会被破碎。

Demolition by Bomb(作用于炸弹的破坏):使用RF-Bomb或Pbomb可以在破坏对象和分组上起作用。在这种情况下RayFire将片段对象考虑爆炸强度,然后引爆炸弹。Spinner 值是乘以为爆炸强度。如果你已经设置在合理的强度,但这还不够炸弹破坏对象的时候增加它的值。该特性的值是0是关闭的。

Demolition by Velocity(以速率作为破坏):在使用破坏的情况下,物体碎片通过速率来破坏。如果觉得破坏的速度不够,请增加它的值。该特性的值是0是关闭的。

Glue options(胶合物选项)

Glue Demolished objects(胶破坏的物体对象):即将被破坏的对象碎片粘合在一起。Glue Objects in Group(粘合在组里的对象):在组里粘合在一起的对象。

Glue by Rebars(通过钢筋胶合):即将被破坏的对象粘合在一起的碎片,但只有分割与钢筋(形状)中在helper列表定义。

Strength(强度):定义了胶强度。更少的强度——容易打破粘对象。让胶牢不可破的这个值设置为100。

Create clusters(产生群集):通过胶合产生群体的对象。

Percent of objects(对象百分比):产生胶合物群集对象的百分比。

Cluster size(群集大小):通过胶合产生群体的对象的大小参数。

Fragmentation Fragmentation Options(碎片选项)

在这个卷展览你可以选择碎片类型,定义碎片属性和碎片的动态/影响对象

如果你的网格有打开的边,碎片将无法正常工作。关闭所有有打开的边缘在使用碎片。

RayFire将焊缝顶点和盖打开自动边缘,但这你自己可以做得更好。还通过交付给实用程序面板重置XForm支离破碎的对象使碎片更稳定。

通过交互层管理,分裂过程后你可以选择新碎片或删除它们。

以防动态/影响对象有超过50000个三角形是的/不/取消窗口将会出现。它将告诉您关于

影响对象有超过50000的三角形,问你“你想自动在片段优化这些对象?”。选择Yes来优化网格,但请注意,在这种情况下UVW地图将发生故障。选择没有继续没有优化,ProBoolean分裂过程中可能会失败。选择Cancel取消分裂过程。牢记这一点,尝试片段对象的多边形数不超过10000。

此卷展览是使用RF时使用率最高的地方,不管是静态的碎裂效果还是基于物理的动

态破碎效果,这里都是最开始的计算元素计算的结果。

Fragmentation type(碎片类型)

ProBoolean碎片类型使用ProBoolean或ProCutter引擎。

所有ProBoolean碎片类型共享相同的属性。

ProBoolean-Uniform(超级布尔运算-规则型):所有的碎片将会非常相同的大小。

ProBoolean-Irregular(不规则型):一些碎片将大,有些小。

ProBoolean-Impact point(碰撞点):如果你使用交互式破碎,会产生碎片对象与更多的微小碎片撞击点,否则它将使用中心的对象作为碰撞点。

ProBoolean-Mouse Cursor(滑动鼠标):碎片物体相对于鼠标光标位置。,如果你将光标远离碎片RayFire将使用统一的分段式,否则RayFire将片段对象只将靠近鼠标光标。

ProBoolean-Pivot point(轴心点):碎片物体相对于对象轴心点。

ProCutter-Continuous(连续切割):片段对象在一个方向通过。尽量不要使用重复超过25。接下来的每一重复要花费更多的时间。

ProCutter-Wood Splinters(切割木片):创建长和锋利的碎片,看起来就像木材的碎片。

Fragmentation properties(碎片属性)Iterations(重复):定义了对象被切割几次。第二个运算将增加变化。

Chaos(混乱值):定义了随机角度范围切割对象。

Detailization(细节):定义了碎片表面细节度。

Noise strength(嘈杂强度):定义了碎片噪声强度。

Voronoi是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。N个在平

面上有区别的点,按照最邻近原则划分平面;每个点与它的最近邻区域相关联。Delaunay

三角形是由与相邻Voronoi多边形共享一条边的相关点连接而成的三角形。Delaunay三角形的外接圆圆心是与三角形相关的Voronoi多边形的一个顶点。Voronoi三角形是Delaunay图的偶图。

泰森多边形法碎片类型为碎片使用RayFire Fragmenter调节器。

所有Voronoi的破片类型都有自己的属性。Voronoi使用点云来定义未来的碎片中心内部生成对象的边界框。

一些观点可能生成的对象外的体积,所以在分裂碎片的数量将会小于点的数量在点云。

Voronoi-Uniform(泰森多边形法-规则型):创建片段与漂亮的相同的大小。点随机生成的点云。

Iterations(重复):定义数量的点在生成的点云重复次数。第二次将增加变化。例如:10,100,1000.

Voronoi-Irregular(不规则型):创建片段有相同的大小。

Iterations(反复):定义生成的点云数量。例如1,2,4.

Offspring(后代子孙):在生成的点云中点的数量。例如:40,150,500。

Divergence(分歧):从分散对象的大小定义生成的每个点云的大小的百分比。如果你想片段很多不同大小的物体在一次是有用的。例如:10,20,50。

Divergence:Units(分歧:单位):定义在世界单位生成的每个点云的大小。

可以马上使用两个分歧属性中的一个分歧属性。增加的价值的变化值将另一个为0和启动它。

Voronoi-Impact point(碰撞点):不规则碎片弹相同类型但有一点差异。首先生成的点云总是将定位在碰撞点。为交互破碎运算作为碎片类型是有用的。

Iterations(反复):定义数量的点在生成的点云重复次数。第二次将增加变化。Offspring(后代子孙):在生成的点云中点的数量。

Divergence(分歧):从分散对象的大小定义生成的每个点云的大小的百分比。如果你想片段很多不同大小的物体在一次是有用的。

Divergence:Units(分歧:单位)定义在世界单位生成的每个点云的大小。

可以马上使用两个分歧属性中的一个分歧属性。增加的价值的变化值将另一个为0和启动它。

Voronoi-Sel Particles\Geometry(粒子\几何体单粒子锁定):在选定的粒子系统使用粒子或顶点在选定的几何对象作为点云。

Percents(百分比):定义用多少点将用于碎片的百分比。有用的添加一些变化。比如:100,50,10

Offspring(后代子孙):在生成的点云中点的数量。用vise,它会非常迅速地在点云增加点的数量。这个属性生成点只有在任何分歧财产超过0。

Divergence(分歧):从分散对象的大小定义生成的每个点云的大小的百分比。Divergence:Units(分歧:单位):定义在世界单位生成的每个点云的大小。

可以马上使用两个分歧属性中的一个分歧属性。增加的价值的变化值将另一个为0和启动它。

Voronoi-Radial(半径):片段对象与径向(蜘蛛网)模式。用于窗户破裂。径向点云是沿着对象的本地生成与中心轴旋转点,但是如果你片段对象在交互式破碎然后碰撞点将作为中心。

Rings \ Rays(半径\射线):第一个变化值定义数量的圈数和第二个定义射线的大小。比如:4\8,8\16,16\32。

Radius(半径):为碎片对象大小的百分比定义生成点云的大小。比如:20,50,80.

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协议

spark+openfire 源代码部署

spark+openfire二次开发(一) 文章分类:Java编程 1.准备工作: 到官网上下载Openfire 3.6.4,并通过svn下载openfire、Spark和SparkWeb 的源代码 官网地址如下: https://www.doczj.com/doc/7d891356.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.

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:账号服务插件源文件

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/7d891356.html,/ 常用Jabber服务器软件:https://www.doczj.com/doc/7d891356.html,/software/servers.shtml 本文以Openfire(Wildfire)为服务器,一款基于GPL协议开源软件,支持各种操作系统,软件需要java环境支持,不过软件本身自带了环境包,你可以根据你的需要下载不同的版本。 下载地址:https://www.doczj.com/doc/7d891356.html,/downloads/index.jsp#openfire Windows无java环境版本地址: https://www.doczj.com/doc/7d891356.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/7d891356.html,/downloads/index.jsp 分为两个版本,一个是包含了JRE的安装版本,另外一个是不包含JRE的版本。也可以分别通过下面两个链接直接下载。 https://www.doczj.com/doc/7d891356.html,/downloadServlet?filename=openfire/openfire_3_7_0.exe https://www.doczj.com/doc/7d891356.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 语言选择:中文(简体)

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/7d891356.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/7d891356.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的一个子类。

Openfire_spark_安装手册

Openfire+Spark安装手册 王保政 QQ:29803446 Msn:baozhengw999@https://www.doczj.com/doc/7d891356.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/7d891356.html, (用户根据自己的需要可配置称别的名字,但最好符合带.的域名格式) 其他机器使用域名访问openfire,也需要在C:\WINDOWS\system32\drivers\etc\hosts中指定https://www.doczj.com/doc/7d891356.html,对应的ip地址,假设安装openfire的主机IP为192.168.1.10,则hosts文件中应增加一新行: 192.168.1.10 https://www.doczj.com/doc/7d891356.html, 通过这种方式指定主机域名,建议安装openfire的机器配置静态ip地址以免ip发生改变。 2.2 安装openfire 2.2.1 安装 安装程序为openfire_3_6_4.exe,运行后,语言选择简体中文,见下图:

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 对应的参数通过空格来隔开支

Android基于XMPP协议的数据推送技术

深入学习XMPP协议 一.XMPP(协议简介) XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML 环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。 二.IM(即时通讯软件简介) Instant Messenger,及时通信软件,就是大家使用的QQ、MSN Messenger和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。当前IM 几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP 协议是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作,提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件,不但让你可以边游戏边聊天,也可以开发出适合游戏本身的IM 应用,比如说一些游戏关键场景提醒功能,团队语音交流等等都可以基于IM来实现。

三.本文主要内容 本文主要讲解在android使用xmpp协议进行即时通信,所涉及3个主要的东西,它们是openfire、smack和spark,这个三个东东结合起来就是完整的xmpp IM实现,这里简单介绍一下这3个东东在下文的作用: openfire主要是作为服务器,负责管理客户端的通信连接,以及提供客户端一些通信信息和连接信息。 Smack主要是xmpp协议的实现,提供了一套很好的api,所以下面操作xmpp都是通过使用smack的api来实现,当然因为是在android里,所以使用的是asmack这个包,里面方法跟smack包差不多。 Spark 是IM客户端的实现,其实就是使用了smack 的api实现的。 数据通讯具体实现的流程:

Openfire使用与插件开发

Openfire使用与插件开发 1、Openfire安装与配置: 下载:点此下载Openfire_src_3_5_1当前最新版本为3.51 配置: 1、把下载出来的压缩包解压存放到工作目录 2、打开Eclipse ,新建一个Project 点击Next 进入如下图: 3、选择第二项点击Browse 选择你Openfire解压出来的目录,Project name里添 项目名称,建议和文件夹名一致(复制Directory的项目名字),Finish完成。 4、在新建的项目上右键Run As →Open Run Dialog,弹出如下窗口:

双击Java Application 新建一个启动配置: Project 选择Openfire的项目,Main class选择启动类,这里我们选择ServerStarter 点击Search 文本框输入ServerStarter 找到类org.jivesoftware.openfire.starter.ServerStarter 点OK完成。 勾选上Stop in main,点击Apply。 切换到Arguments选项,在V M arugments 里加入:

-DopenfireHome="${workspace_loc:openfire_3_5_1}/target/openfire" ,点击Apply。 切换到Classpath下选择User Entries 单击Advanced →OK ,选择Openfire项目→src →i18n →OK。 重复上面操作再添加src →resources →OK,点击Apply。 切换到Common,勾选Run 、Debug ,点击Apply 。配置完成,我们点下面的Run。 程序启动,基本配置完成。 2、插件开发: 1、插件结构: testplugin/ |- plugin.xml <- 配置文件 |- readme.html <- 用户说明 |- changelog.html <- 更新日志 |- icon_small.gif <- 小图标 |- icon_large.gif <- 大图标 |- src/ <- 存放编译的类文件夹 |- database/ <- 存放数据库改动 |- i18n/ <- 国际化 |- lib/ <- 插件所需要的类库 |- web <- 显式调用插件时需要的Web页面 |- WEB-INF/ |- web.xml <- Web配置 |- web-custom.xml <- Web配置 |- images/ 在项目文件夹下手动新建一个插件文件夹,定义名为testpluin,进入文件夹根据需要新建以上文件夹或文件,其中web、i18n、icon、database都不是必须的。 在建立的src\java\org\jivesoftware\openfire\plugin下建立一个类,起名为TestPlugin。 建立plugin.xml : org.jivesoftware.openfire.plugin. TestPlugin

openfire_plugin开发流程

Openfire插件开发流程 1.插件结构: testplugin/ |- plugin.xml <-配置文件 |- readme.html <-用户说明 |- changelog.html <-更新日志 |- icon_small.gif <-小图标 |- icon_large.gif <-大图标 |- src/<-存放编译的类文件夹 |- database/<-存放数据库改动 |- i18n/<-国际化 |- lib/<-插件所需要的类库 |- web <-显式调用插件时需要的Web页面 |- WEB-INF/ |- web.xml <-Web配置 |- web-custom.xml <-Web配置 |- images/ 2.加入插件目录文件: 在eclipse的openfire项目文件夹openfire_src\src\plugins下手动新建一个插件文件夹,定义名为testplugin,进入文件夹根据需要新建以上文件夹或文件,其中web、i18n、icon、database 都不是必须的,可以只创建src文件夹和plugin.xml文件。 在建立的src文件夹下依次创建文件夹java,org,jivesoftware,openfire,plugin,形成 src\plugins\testplugin\src\java\org\jivesoftware\openfire\plugin的目录结构。在最底层,即plugin文件夹下建立java类,起名为TestPlugin.java。 修改建立好的plugin.xml : org.jivesoftware.openfire.plugin.TestPlugin Plugin Test Plugin Aaron 1.0.0 12/24/2007

openfire插件大全

Openfire中有效的插件(商业插件)可能对IM开发有帮助 插件可以给服务器增加新的功能。已经安装的插件会在下表中显示。当插件已经下载后可能需要一段时间用于安装。当插件安装成功后会在列表中显示。 开放源代码插件描述版 本 作者 File Size 安 装 Asterisk-IM Openfire Plugin Integratio n for Asterisk and Openfire. 1.4 .0 Jive Software 426.0 K Client Control Controls clients allowed to connect and available features 1.2 .0 Jive Software 162.2 K Clustering Plugin Clustering support for Openfire. 1.2 .3 Jive Software 59.2 K Content Filter Scans message packets for defined patterns 1.7 .0 Conor Hayes 24.7 K DB Access Provides administra tors with a simple direct access interface to their 1.1 .0 Daniel Henninger 8.1 K

开放源代码插件描述 本作者 Size 装 Openfire DB. Debugger Plugin Prints XML traffic to the stdout (raw and interpreted XML) 1.3 .0 Jive Software 11.7 K Email Listener Listens for emails and sends alerts to specific users. 1.1 .0 Jive Software 18.1 K Fastpath Service Support for managed queued chat requests, such as a support team might use. 4.3 .1 Jive Software 1.4 MB Fastpath Webchat Web based chat client for Fastpath. 4.0 .0 Jive Software 2.1 MB GoJara ProtoXEP -xxxx: Remote Roster Managem ent support 2.1 .5 Holger Bergunde / Daniel Henninger / Axel-F. Brand 297.2 K Jingle Nodes Plugin Provides support 0.1 .0 Jingle Nodes (Rodrigo Martins) 60.8 K

OpenFire 插件开发基础教程

OpenFire 插件开发基础教程 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

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