openfire群消息投递】的更多相关文章

消息的可靠性,即消息的不丢失和不重复,是im系统中的一个难点.当初qq在技术上(当时叫oicq)因为以下两点原因才打败了icq:1)qq的消息投递可靠(消息不丢失,不重复)2)qq的垃圾消息少(它antispam做得好,这也是一个难点,但不是本文重点讨论的内容)今天,本文将用十分通俗的语言,来讲述webim系统中消息可靠性的问题. 一.报文类型im的客户端与服务器通过发送报文(也就是请求包)来完成消息的传递,报文分为三种,请求报文(request,后简称为为R),应答报文(acknowledge…
1. 参考 http://blog.csdn.net/foxisme2/article/details/7521139 http://blog.csdn.net/foxisme2/article/details/7528148 其中生成测试报告的 命令 由于我本机tsung 的安装路径和上面资料的不同 需要使用 /usr/local/lib/tsung/bin/tsung_stats.pl   (使用 whereis tsung 找到tsung 的安装路径) 其中配置文件  <client ho…
XMPP 有以下几种消息类型: l   Normal l   Chat l   Groupchat l   Headline l   Error 根据官方文档(http://www.igniterealtime.org/builds/openfire/docs/3.3.2/documentation/javadoc/org/xmpp/packet/Message.Type.html)的解释,它们的用途分别如下: l   Normal – 用于类mail的接口 l   Chat – 用于典型的行到…
  消息的可靠性,即消息的不丢失和不重复,是im系统中的一个难点.当初qq在技术上(当时叫oicq)因为以下两点原因才打败了icq:1)qq的消息投递可靠(消息不丢失,不重复)2)qq的垃圾消息少(它antispam做得好,这也是一个难点,但不是本文重点讨论的内容)今天,本文将用十分通俗的语言,来讲述webim系统中消息可靠性的问题. 一.报文类型im的客户端与服务器通过发送报文(也就是请求包)来完成消息的传递,报文分为三种,请求报文(request,后简称为为R),应答报文(acknowled…
推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这样的好处就是有消息后才向客户端推送,相比于拉取数据不会产生许多无效的查询,实时性也高. xmpp这种即时通信协议基于TCP长连接还是比较符合这种场景的.只需要在服务端增加一个模块用于接收用户订阅与数据的推送就完成了主体功能. 在xmpp协议里可以扩展组件,这样我们写一个组件,然后连接到xmpp服务器…
说明   本文源码基于Openfire4.0.2.   Openfire的启动       Openfire的启动过程非常的简单,通过一个入口初始化lib目录下的openfire.jar包,并启动一个XMPPServer实例.   下面就是ServerStarter.start方法的代码片断:   Class containerClass = loader.loadClass("org.jivesoftware.openfire.XMPPServer"); containerClass…
如果用户量增加后为了解决吞吐量问题,需要引入集群,在openfire中提供了集群的支持,另外也实现了两个集群插件:hazelcast和clustering.为了了解情况集群的工作原理,我就沿着openfire的源代码进行了分析,也是一次学习的过程.   首先理解集群的一些简单概念 集群的目的是让多个实例像一个实例一样运行,这样就可以通过增长实例来增长计算能力.也就是所谓的分布式计算问题,这其中最为关注的一个特性就是——CAP理论,也就是所谓的一致性.可用性.分区容错性.集群中最核心解决的问题就是…
在之前的文章<Openfire阶段实践总结>中提到过一种openfire的扩展模式Compoent.本文将主要探讨对这种模式的应用与开发方法. 内部与外部组件介绍 在openfire中的许多插件都实现了Compoent,Compoent的灵活性在于它可以通过对特定的二级子域包进行处理.在XMPP协议中最为明显的使用场景就是群聊,这就是一个典型的例子.看看openfire中的聊天室JID都是什么格式:room1@conference.domain,很明这里多了一个conference.对比用户的…
从3月开始研究Openfire,其实就是要做一套IM系统,也正是这个原因才了解到Openfire.之前还真没想过有这么多的开源产品可以做IM,而且也没想到XMPP这个协议竟然如何强大.看来还是标准为先,好的标准可以推动产业发展啊. Openfire的搭建与简单的demo之前写过篇<技术笔记:XMPP之openfire+spark+smack>,当时主要关注的怎么让这套体系跑起来吧,只不过现在还是在这个阶段,只是多学了点东西留下点笔记吧. 1.对于XMPP的学习很重要 最开始觉得搭建一套Open…
在即时通信这个领域目前只找到一个XMPP协议,在其协议基础上还是有许多成熟的产品,而且是开源的.所以还是想在这个领域多多了解一下. XMPP协议:具体的概念我就不写了,毕竟这东西网上到处是.简单的说就是基于XML的一种协议.其解决了什么问题呢?就是给即时通讯制定了标准,大家只要遵守标准就可以完成即时通信的功能.有了标准的好处就是可以有各种不同的实现,大家在这个标准上发展自己的特长.而且还给即时通信提供了互联互通的基础.XMPP协议据网上说还是比较优秀的,表现就是google等大公司都在自己的即时…
在开发业务系统时,某些业务场景需要消息定时发送或延时发送(类似:飞信的短信定时发送需求),这时候就需要用到activemq的消息延时投递,详细的文档可参考官网说明,本文只介绍二种常用的用法: 注:本文采用spring的JmsTemplate来发送消息 步骤1.首先要修改activemq.xml配置文件,启用延时投递 <broker xmlns="http://activemq.apache.org/schema/core" ... schedulerSupport="t…
Openfire 集群部署和负载均衡方案 一.   概述 Openfire是在即时通讯中广泛使用的XMPP协议通讯服务器,本方案采用Openfire的Hazelcast插件进行集群部署,采用Haproxy进行负载均衡,在示例环境中测试通过. 二.   示例环境 服务器配置如下: 服务器名 用途 操作系统 IP PC647 Openfire节点1 Windows7 10.200.10.11 seasky Openfire节点2 Windows xp 10.200.10.18 Lub1 Mysql数…
1.前言 本文的上篇<IM消息送达保证机制实现(一):保证在线实时消息的可靠投递>中,我们讨论了在线实时消息的投递可以通过应用层的确认.发送方的超时重传.接收方的去重等手段来保证业务层面消息的不丢不重. 但实时在线投递针对的是消息收发双方都在线的情况(如当发送方用户A发送消息给接收方用户B时,用户B是在线的),那如果消息的接收方用户B不在线,系统是如何保证消息的可达性的呢?这就是本文要讨论的问题.(本文同步发布于:http://www.52im.net/thread-594-1-1.html)…
昨天讲了Openfire的搭建和配置,今天来讲一下Smack.如果对如何搭建和配置Openfire的,可以参考Openfire/XMPP学习之——Openfire的安装.配置. Smack是一个开源,易于使用的XMPP客户端类库.Smack API, 是一个 Java 的XMPP Client Library,也是由Jive Software开发. 优点:编程简单. 缺点:API并非为大量并发用户设计,每个客户要1个线程,占用资源大,1台机器只能模拟有限(数千个)客户.Smack是一个用 jav…
一.Openfire下载: 官方下载:http://www.igniterealtime.org/downloads/index.jsp 在官方下载站点,可以获取Windows.Linux.Mac三种系统的安装文件,我们这里主要讲的是Windows系统的配置,忽略其它系统吧.对于Windows系统来讲,安装文件又分为exe和zip的,个人推荐exe的安装文件,只需要双击->安装就行了,省时省力.对于zip格式的,百度的使用方法是:解压,复制文件到C:\Program Files\目录下即可.这个…
Linux环境中Openfire安装指南 安装环境: 安装软件:Openfire 4_1_0 http://download.igniterealtime.org/openfire/openfire_4_1_0.tar.gz 环境准备 先确保是否已安装jdk,出现下面信息表明已安装.若未安装,请先安装JDK java -version 一.Openfire安装 本文针对Openfire安装,提供了两种方式.根据自己的下载的文件不同,选择不同的安装方式即可. Openfire的tar.gz包安装…
http://www.igniterealtime.org/downloads/index.jsp 服务器端口 接口 端口   类型 描述 所有的地址 5222 客户端到服务器 客户端使用标准端口连接到服务器,连接可能没有加密,您可以更新安全设置 为这个端口         所有的地址 5223 客户端到服务器 客户端使用旧的SSL方法连接到服务器的端口.旧的SSL方法不是一个XMPP标准方法,在不久将不被支持,您可以更新安全设置 为这个端口         所有的地址 9090 管理控制台 端…
openfire 初始密码 mssql2014 进入数据库,找到 ofUser 表 ,将密码字段对应的密文替换为下面的内容,则密码就是 admin ecbd03623cd819c48718db1b2732ea4ee07c0f8ae484bcb5…
1.openfire xmpp登录 boolean result = false; ConnectionConfiguration config = new ConnectionConfiguration("192.168.1.143"); // serverIp表示的是你openfire服务器地址 config.setReconnectionAllowed(false); config.setSendPresence(false); XMPPConnection connection…
1.openfire采用的加密方法 Blowfish.java /** * $RCSfile$ * $Revision: 3657 $ * $Date: 2002-09-09 08:31:31 -0700 (Mon, 09 Sep 2002) $ * * Adapted from Markus Hahn's Blowfish package so that all functionality is * in a single source file. Please visit the follo…
前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.8.1版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码. 即时通信客户端可使用spark2.6.3,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn网关支持上可能有问题,所以选择openfire3.8.1+spark2.6.3是最合适的选择. Smack…
转自:http://blog.csdn.net/nomousewch/article/details/7546083 在最近的项目中使用openfire服务器实现消息推送功能,如果使用openfire自带的用户表,需要维护两张用户表,不是很方便,如果openfire能够直接使用现有系统的用户表就方便多了,而事实上openfire已经为我们考虑到了这一点,我们只需要做一些相关配置就可以了. 原理 研究了下openfire的源码,发现实现此点的关键在于data provider的应用,简单来说,就是…
修改openfire安装目录下./conf/openfire.xml <setup>true</setup>中的true为false,重新启动,然后配置…
官方文档在这里 Install JDK Download JDK and install them. The least version should be 1.5. I use 1.6. Sorry, no instruction for this. Install Eclipse 3.3 Download Eclipse 3.3 from www.eclipse.org. I use Eclipse IDE for Java EE Developers. You should at leas…
首先,确保你已经关掉了openfire打开终端 (在应用程序-->实用工具-->)输入以下命令sudo rm -rf /Library/PreferencePanes/Openfire.prefPane sudo rm -rf /usr/local/openfire sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist 第一条会让你输入管理员密码,尽管你输入的时候,终端不会显示,不必担心,正确输入后按回车,它就执行…
Openfire和Strophejs网站 域名不同如何进行通信,这个问题总算解决,下面是解决步骤. 解决方案一: Chrome浏览器默认支持跨域访问 IE浏览器需要做配置:点击IE浏览器的的“工具->Internet 选项->安全->自定义级别”将“其他”选项中的“通过域访问数据源”选中为“启用”或者“提示”,点击确定就可以了   解决方案二: 通过nginx做反向代理并配置跨域脚本,部署步骤如下面所述:   Openfire部署机器域名A    HTTP协议  http://A:707…
网站上有很多Openfire Web方案,之前想用Smack 但是jar包支持客户端版本的,还有JDK版本问题  一直没调试成功  估计成功的方法只能拜读源码进行修改了. SparkWeb 官网代码很久没维护  CSDN上下来个版本但jar包路径不对  花了不少时间总算能跑起来,不过版本是flex3版本,太老了   自己花精力升级有点费时间呀 最后采用存脚本开发Strophejs,下面网站写的很详细 学习的网站:http://www.dotblogs.com.tw/sungnoone/archi…
需求要求审核过程中都用匿名进行用户注册登录,注册用户审核通过后才使用openfire内置表 如何做到用户密码统一 Openfire是通过org.jivesoftware.util.Blowfish.java实现的加密. 密钥:在openfire的数据库中有表ofproperty,其中就有passwordKey的值 Blowfish blow=new Blowfish(passwordKey); //加密 String encrypt=blow.encryptString("123");…
网上很多openfire相关资料,这里做下学习汇总 openfire官网:http://www.igniterealtime.org/ 可以下载openfire.spark.smack安装包及源码,安装很简单直接选下一步就好 openfire数据库配置: 自带数据库:http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html mysql数据库:http://www.th7.cn/db/mysql/201406/59838.shtml…