Openfire源码使用Install4j打包】的更多相关文章

https://www.ej-technologies.com/download/install4j/files 下载并安装install4jhttps://www.ej-technologies.com/download/install4j/files 注:5.1版本会显示警告修改myeclipse中jvm参数 修改build.xml 打包4.1 网上找到的方法本机测试不成功,在打包文档之后就没有反应 4.2 本机测试成功的方法在openfire_src\target下新建release文件夹…
java开源即时通讯软件服务端openfire源码构建 本文使用最新的openfire主干代码为例,讲解了如何搭建一个openfire开源开发环境,正在实现自己写java聊天软件: 编译环境搭建 调试环境搭建 步骤列表 下载openfire源码 配置开发环境 配置ant运行 执行runconfigrations 调试环境搭建完成 下载openfire源码 openfire是github开源项目,其自有网站是http://www.igniterealtime.org 可在这个网站查看其相关发布信息…
本篇先分析openfire源码的主要流程,模块细节后续再继续分析: 一.简介: Openfire是开源的实时协作服务器(RTC),它是基于公开协议XMPP(RFC-3920),并在此基础上实现了XMPP-IM(RFC-3921),扩展了IM功能,对实施协作的各种场景做较全面的考虑,如用户在线状态切换.消息订阅.通知等等,因此可以用来搭建即时通信服务器,其搭建的方法也很简易. 1.账号体系: XMPP服务器的帐号基础,是域(Domain),例如:org.example.com,它在服务器配置时的时…
原文:http://blog.csdn.net/jinzhencs/article/details/50457152 1.linux版本的3.10.3解压部署启动(过程略,参考我的另一篇博文http://blog.csdn.net/jinzhencs/article/details/50404574) 2.停止linux上的openfire 3.eclipse本地源码修改完毕后,先Ant clean.再Ant openfire.得到相应的work及target. (一定要clean了再openf…
1.下载源码:http://www.igniterealtime.org/downloads/source.jsp 2.把源码解压出的openfire_src目录放至eclipse workplace(注意:若是变更了解压出来的文件名称,则接下来全部用到文件名称的地方都要作出对应更改,否则会报错!) 3.把openfire_src目录里的三个没用的html文件删除 4.打开eclipse,新建一个名为openfire_src的Java Project,然后finish 注:此处的默认路径为ope…
根据xmpp协议 客户端发送: <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>XXXXXXXXXXXXXXXXXXXXX=</auth> 其中,xmlns是命名空间,mechanism是用户名密码的加密方式,auth 标签的text内容为用户名密码通过PLAIN方式加密的字符串. 服务端接收: 通过ConnectionHandler类的messageReceived方法接收,process中处理 e…
vscode默认是英文,如果你想让其变为中文,可参考这个链接:https://blog.csdn.net/testcs_dn/article/details/75070415 最近发现一个很奇怪的问题,vscode打包前和打包后存在很大的不同的,正常来说,比如我们开发项目,实际上来说,本地怎么样,线上就怎么样,当然了,也不排除一些线上导致的bug. 比如vscode源码已经启用了中文语言包插件,同时也修改了locale.json文件(将文件中的en改为zh-CN),但是还是是英文,后来我转念一想…
这篇文章是在你已经down了openfire的源码,然后在本地跑起来了,再然后开发了一个自己的插件,想要发布到服务器上.ok这时候出现了一个问题,怎么才能发布到服务器上呢?别急往下看: 1.运行ant中openfire[default] 2.将生成的openfire拷贝到linux服务器中(通过ftp) 3.进入到openfire/bin 目录中,执行./openfire.sh命名启动服务器 注:如果出现,在linux下执行sh文件时提示下面信息: -bash: ./xx.sh: Permiss…
1.源码通过编号后,会生成target目录,直接把target目录拷贝到linux下即可: 2.启动openfire: ./openfire.sh start 3.退出直接ctr + c 问题:如果一直启动不了,有可能是之前配置信息冲突问题,如数据库连接不上等,需要重新配置,删除conf/openfire.xml下的  <setup>true</setup> 后,重新启动即可:…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43484199 Smack Smack是一个用于和XMPP服务器通信的类库,由此可以实现即时通讯和聊天.Android中开发通讯APP也可以使用这个包.关于smack的中文开发文档,目前网上也有很多. 下面本,将从源码中分析smack的几个案例. 连接 关于smack的Connection是连接XMPP服务器的默认实现.他有两个构造函数,一个是XMPPConecttion(String)…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43458213 IOS离线推送 场景: 如果您有iOS端的APP,在会话聊天的时候,用户登陆了但可能会退出了界面.这时候其他终端给目标端发送消息时候,消息可以发送到ios的推送服务器.用过QQ的都知道,你会有哦一条消息在您的主屏上展示.这个就是利用了IOS的推送服务器呢.那么openfire只需要判断用户不在线的时候将消息推送给IOS端. 苹果服务器的消息推送都需要手机的唯一标志,也就是…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43415827 关于连接管理分为上下两部分 连接管理 在大并发环境下,连接资源 需要随着用户并发访问量的增加而增加,所以可伸缩的连接资源就是支持大访问量的关键技术.openfire系统通过增加独立部署的连接管理器程序提高并发的能力,连接管理的前端是一台负载均衡设备,它负责把用户访问分配到指定连接管理器,多台连接管理器在访问服务器.使用连接管理器后,服务器的连接池是提供给连接管理器连 接,…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43413651 Group 在openfire中的gorop——组,也可以理解为共享组.什么叫共享组呢.当有一个组名字为“学习组”,当其他用户加入这个组的时候,那么他们会自动成为相互的好友.实际上 在openfire内,用户的好友不仅仅只是花名册,还包括共同在一个组的成员.当然这个组有很多好处.比如,那我们公司做的一个项目为例.我们做学校老师与家里沟通的的APP,需要预先将老师和家长做成…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43413509 用户注册 注册流程: 1.客户端进行握手给服务端发送连接消息: <stream:stream to="192.168.2.104" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43413233 openfire启动 ServerStarter 启动流程图: 启动的总入口在ServerStarter的main方法中.通过上图首先它会先加载它所需要的jar文件.最后通过Java反射机制将XMPPServer加入当前线程. Thread.currentThread().setContextClassLoader(loader); Class containerClas…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43412617 源码搭建 下载地址: 地址:http://www.igniterealtime.org/downloads/source.jsp 环境准备 第1步:  在官网上在下最新源码,这里是3.8.1.解压后得到如下图所示: 第2 步: 在IDE工具上新建一个Java普通工程命名openfire 第3步: 将解压后的openfire_src目录的下的所有文件源码复制到此项目下,例图…
/** * $RCSfile: MessageRouter.java,v $ * $Revision: 3007 $ * $Date: 2005-10-31 13:29:25 -0300 (Mon, 31 Oct 2005) $ * * Copyright (C) 2005-2008 Jive Software. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License")…
启动流程 Socket接口 Socket通信使用Mina框架实现,是XMPP协议的处理入口,具体为: 消息接收后由不同的节处理器处理: StanzaHandler基础消息类型,之后进行消息路由: 最后通过路由表进行路由: Http接口 Http接口用于Web端的管理以及Web客户端的通信,使用jetty实现. 通过XMPServer启动ConectionManager来管理链接启动,包括SSL,HTTP,TCP等. 消息处理流程 消息发送 消息的发送通过NIOConnection.deliver…
原文:http://blog.csdn.net/jinzhencs/article/details/50522105 一.拦截器的实现 地点:   package org.jivesoftware.openfire.interceptor-public class InterceptorManager 作用:   在每个packet处理之前先使用拦截器Manager里面的interceptors处理 解释:   这个拦截器Manager是一个List,里面包含多个拦截器的实例,如果需要多加拦截器…
原文:http://blog.csdn.net/jinzhencs/article/details/50522322 前言: 目前我们的openfire服务器只能支撑单机2W 集群4W.(估测在线用户数已经7.8W了) 内存25G,已经去除了好友关系(我们的场景是设备控制,消息推送,无需好友关系,) 在此情况下我们需要研究出单节点25G能够支撑5W甚至更多. 并且目前感觉openfire还是有些问题的,但是无法测出来(tsung完全测不出来,500M内存在线5.6W...) 那么修改openfi…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43457645 HTTP Service插件 这里的http接口插件是神马? Openfire主要是在消息推送,那么与其他系统的的消息怎么结合呢,那么这里这个HTTP Service插件就提供了一个基于HTTP的接口.为什么要提供这样的接口?在有些互联网的场景.一个用户平台可以是web的,当然也会有移动终端的APP,那么web端要给移动终端的APP发送消息就依赖这样的接口了.当然这里只是…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43418493 Plugin接口规范 插件是openfire功能的增强表现,它的主要任务: l  在XMPP协议中作为附加功能实现 l  动态修改控制管理台 l  使用openfire api作为新功能添加到服务器 Openfire里面的插件都会存放在plugins(工程目录为:src/plugins)的住目录下.使用ant工具编译后插件会打成jar包生成在target/openfire…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43418433 Plugin管理 Openfire把插件模块加入到容器分为以下步骤: l 通过classloader加载lib目录下载的所有jar l 通过classloader加载dir目录下的所有文件 l 定位和加载module.xml到context l 遍历jive模块实体,负荷给定的类作为一个模块,然后启动它 Openfire插件加载流程图: Openfire的插件管理类Plu…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43417817 消息处理流程总揽(该图来源于互联网,图片很大,不过类容还是挺清楚的.不方便查看,需要下载查看): 更为直观的流程描述: 在线chat Test1---->test2 <message id="1coTi-29" to="test2@8ntmorv1ep4wgcy/Smack" from="test1@8ntmorv1ep…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43417343 HttpSessionManager 该类管理所有通过httpbing连接到openfire的议定.它是一个同步http的双向流 http://www.xmpp.org/extensions/xep-0124.html 构造方法:HttpSessionManager() 配置一个汇集执行者对异步路由传进来的数据的默认大小配置默认为60秒 注意:在默认情况下,服务支持最大2…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43416523 下面是下部分 C2S 1.当有客户端进行连接时根据Mina框架的模式首先调用的是sessionOpened方法. sessionOpened首先为此新连接构造了一个parser(XMLLightWeightParser),这个parser  是专门给XMPPDecoder(是XMPPCodecFactory的解码器类)使用的,再创建一个 Openfire的Connecti…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43415023 关于缓存,openfire存储到了本地JVM中.本人认为这样并不是很好.以后会讲一篇Redis的缓存. 实际应用中,本人讲openfire诸多缓存内容放置了redis中.这里就看看openfire自己的缓存吧. Cache接口 类图: Cache接口继承了Map工具类,它存储相关的对象在内存中独特的键.值队,可快速访问.所有的键和值添加到缓存必须实现Serializabl…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43413817 MUC 房间属性设置 以上属性存储在MUCPersistenceManager private staticConcurrentHashMap<String,MUCServiceProperties> propertyMaps=newConcurrentHashMap<String,MUCServiceProperties>(); 创建房间 客户端创建房间案…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43413377 登陆 登陆认证,客户端发送认SASL证消息: <auth mechanism="DIGEST-MD5" xmlns="urn:ietf:params:xml:ns:xmpp-sasl"></auth> 服务器得到客户端给出的SASL认证机制回答.首先将它存储起来. C给出的认证机制为DIGEST-MD5,又服务器发起盘…
转:http://blog.csdn.net/huwenfeng_2011/article/details/43413009 Mina概述 Apache MINA(Multipurpose Infrastructure for NetworkApplications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架.当前发行的 MINA 版本支持基于 JavaNIO 技术的 TCP/UDP应用程序开发.串口通讯程序(只在最新的预览版中提供),MI…