- tigase8使用smack库实现群聊
NingKangMing
Tigasetigase8xmpp即时聊天
实现群聊和单聊实际差不多,下面给出一个案例供不熟悉的朋友参考。首先引用smack库(整体pom文件都给出好了)4.0.0org.springframework.bootspring-boot-starter-parent2.6.5com.nufront.xmppboot-xmpp-demo0.0.1-SNAPSHOTboot-xmpp-demoboot-xmpp-demo1.84.4.61.81.
- Tigase8 SSL安全连接配置与代码实现
NingKangMing
Tigase网络安全ssl安全https
SSL安全连接tigase版本:8.1.2默认tigase在certs目录下有tigase自签证书,参考:ServerCertificates备份tigase原certs目录(里面的域名证书,如ubuntu.pem是使用开源ca创建的,参考上面的文章),然后把我们自定义生成的服务证书(pem格式,包括证书和私钥内容)放置到certs目录,然后客户端使用服务端的crt证书(不包含私钥)即可。不用ca
- Tigase-Server 8.3.0在windows11下安装
grady.lu
javajvm服务器tigasexmpp
一、JDK安装:tigase-server要求JDK17,请先下载JDK17,下载地址:https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.exe配置环境变量:JAVA_HOME={JDK安装目录}二、数据库安装:tigase-server8.3在windows下推荐用MySQL,相关操作略。三、下载tigase-se
- XMPP Server项目的初探
Picasso0710
近期公司需要搭建XMPP服务器,经过调研已经将服务方案的着重点放在了Tigase与eJabberd之间,但随着调研工作的深入也逐渐发现了他们的一些区别,首先最大的区别就在于他们的集群策略上,最终我们还是选择了eJabberd,没有什么原因就是因为他的集群策略是免费的支持水品扩展。Tigase的好处在于Java编写,扩展它的入门门槛还是相对较低,资料齐全,但是集群的免费策略仅支持最大3太的HA解决方
- linux安装tigase
wongstar
Protocol
linux安装tigase1下载安装包https://projects.tigase.org/projects/tigase-server/files从中选一个,我这边选的是tigase-server-5.1.0-beta2-b2555.tar.gz2上传到linux服务器,解压tar-zxvftigase-server-5.1.0-beta2-b2555.tar.gz3进入tigase目录cdt
- xmpp单点登录方法实现
huangxin0102
Android
如果JID的resource缺省,则登陆后XMPP服务器会自动分配一个resource,如tigase-10.由于XMPP是支持多点登陆的,所以不同客户端用同一个JID登陆后,服务器会为每一个客户端分配一个不同的resource以区分他们。比如A客户端的resource是tigase-10,B客户端是tigase-11,这时A的客户端的完整jid是
[email protected]/tigase
- Tigase学习
王人冉
Tigase即时通讯
1、Tigase启动入口类:src/main/java/tigase/server/XMPPServer.javainit.properties中--sm-pluginssm:SessionManagerIQ:IQ的意思是Info/Query:它是一种请求和应答机制,和http有一些类似的地方。CData:ConnectorData只是猜测,不清楚对不对ACS:TigaseAdvancedClus
- 【tigase】用Eclipse调试tigase源码
untager
tigasexmpp
我们项目开始时候由于各种原因选择openfire作为即时通讯服务器。随着用户人数的增加,考虑到openfrie集群需要license,而单台openfire在稳定性及容量上都难以为继。需要考虑一个支持集群的xmpp服务器。由于语言的问题,毕竟现在用的是java,所以先考察一下Tigasetigase官网两条新闻很醒目:Clusterwithover1mlnonlineusers.500konlin
- Tigase开发笔记3:Tigase 参数配置说明
Ai2015WER
企业IMJava开发XMPPTigase
sm-plugin说明参数说明参考jabber:iq:register注册服务message-archive-xep-0136消息归档?jabber:iq:auth简单用户认证urn:ietf:params:xml:ns:xmpp-saslSASL协商参考urn:ietf:params:xml:ns:xmpp-bind资源绑定urn:ietf:params:xml:ns:xmpp-sessions
- tigase rest Api 发送消息 解决消息中文乱码问题
苹果看世界
Tigasetigaserestapijava乱码
直接上代码importorg.apache.http.HttpEntity;importorg.apache.http.HttpResponse;importorg.apache.http.client.HttpClient;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.entity.StringEntity
- tigase 启用Http Rest API 问题整理
苹果看世界
Tigase
1.由于Stream.groovy的description属性,可能是版本问题不兼容,将脚本Stream.groovy脚本中的description注释掉2.通过http发送消息时不希望对用户进行认证修改Stream.groovy脚本的requireRole设置未null3.closure修改execPost,去掉user参数配置:在init.properties文件中--comp-name-1=
- 企业即时通讯系统开发,企业内部即时通讯软件搭建
少一点套路_8ccb
体验包地址:Android安装包:https://www.pgyer.com/yuiciOS安装包:https://www.pgyer.com/ocYa系统架构:、http://1.IM服务器l负责消息接收转发及推送lJAVA+MySQLl基于Tigase架构,单机最高并发30w,集群最高并发1400w(注,本项目交付为非集群版本)。l2w用户要求服务器:centos7.x+,4C8G,100M峰
- 登录过程
Johnblx
- tigase 的基本使用 (smack)
游园拾忆 ✉
连接管理类publicclassGetXMPPConnection{//获取连接publicstaticAbstractXMPPConnectiongetConnection(){AbstractXMPPConnectionconnection;Builderbuilder=XMPPTCPConnectionConfiguration.builder();builder.setSecurityMo
- Nginx对TCP协议的代理配置
游园拾忆 ✉
Nginx
Nginx1.90以上版本增加对tcp协议的支持,但需要配置参数开启代理。 模块参数--with-stream–-with-stream_ssl_module具体配置在http的同级添加streamstream{upstreamtigase5280{hash$remote_addrconsistent;serverxxx.com:5280weight=5;}server{listen443ssl;
- 移动IM开源框架Tigase > Openfire > Ejabberd对比分析
狗尾巴草也开花
android
一、IM协议选择二、IM服务器的选择三、XMPP协议的问题及改进登录握手部分的改进XMPPQuickStart(XEP0305)心跳改进XmppPing/Pong(XEP0199)40+字节->单向whitespaceping,4字节文件传输Xmpp协议的文件传输是点对点的,需要改成用http上传到server语音,视频压缩后上传下载图片,缺省下载缩略图Presence对移动互联网场景,不转发是否
- openfire服务器+smack框架实现安卓聊天app(一)搭建服务器
枫沉枯绿
openfire服务器+smack框架实现安卓聊天app这是移动应用开发的课设,我开始就准备开发一个能够远距离实时聊天的安卓app,往个方向找了找,发现有个Tigase开源服务器正好能满足我的需求,而在AndroidStdio中找到了smack框架能够方便快捷地建立连接、监听实现聊天功能。可惜中途遇到了好多坑,后来也把Tigase服务器换成了openfire服务器,好在最后还是实现了这个功能。这篇
- 仿微信视频通话大小视图切换(SurfaceView实现)
戎码虫
前言前一段时间做了一个即时通讯的项目,在项目中遇到很多坑,有时间一一做个总结,项目消息发送基于XMPP+Tigase,语言视频通话基于PJSIP+FreeSWITCH,项目UI仿微信。做到视频通话时,遇到本地视图与远程视图切换,网上搜了一篇相关的博客:https://blog.csdn.net/xuedaqian123/article/details/77878781,根据大神思路写了这个Demo
- Nginx对TCP协议的代理配置
游园拾忆 ✉
Nginx1.90以上版本增加对tcp协议的支持,但需要配置参数开启代理。 模块参数--with-stream–-with-stream_ssl_module具体配置在http的同级添加streamstream{upstreamtigase5280{hash$remote_addrconsistent;serverxxx.com:5280weight=5;}server{listen443ssl;
- 移动IM开源框架对比
speedboy007
IT
最近在看移动IM相关的资料,然后发现网上有很多的资料,所以在学习过程中,整理了一些笔记,供那些想了解移动IM的童鞋一些参考。移动IM技术选型要点1、协议选型2、IM服务器选型3、协议和IM服务器改造4、移动IM常见问题以及一些解决方案5、一些第三方服务一、常用的IM协议二、IM服务器的选择经过这几天在网上的调研,发现目前比较流行的几个IM服务器也就是Openfire、Tigase,Ejabberd
- XMPP协议学习笔记六(搭建Tigase开发环境)
iteye_1287
概述最近闲来无事研究了一下另一个基于XMPP协议开发的服务器Tigase,发现其相比Openfire还是有一定的优势的,官方号称其单台服务器可以同时承受50W在线人数的负载,从这一点来看比Openfire强很多(Openfire如果不考虑Roster估计可以达到单台1000的同时在线就不错了),下面给大家演示一下如何获取源代码以及在eclipse中调试。首先获取源码,我是通过eclipse的git
- 即时通讯服务器的对比
dielucui7698
业界有很多优秀的开源XMPP服务器,比如eJabberd、Openfire、Tigase、Jabberd2、Prosody,还有一些优秀的商业XMPP服务器,比如lsode、JabberXCP等。在XMPP.ORG网站上可以看到完整的列表。openfire使用搭建更加方便快捷,管理界面也更友好,可视化配置方便。tigase功能更加强大丰富一些,tigase性能更好,支持集群横向扩展,可以支撑更大的
- Tigase8.0 源代码分析:四、集群配置篇
llooperliang
Tigase8集群配置是很简单的,本文从实验的角度来了解tigase集群配置及启动。首先你先能保证在机器上能跑单机版本的代码,如果还没有,先移步看前面的博客吧1、准备工作:内网中至少两台主机:我就以我本地实验来做参考:主机A:[192.168.3.2]主机名[llooper]主机B:[192.168.3.5]主机名[shirley-pc]2、修改C:\Windows\System32\driver
- Tigase8.0 源代码分析:二、MUC源码分析
llooperliang
XMPP在其XEP-0045扩展中定义了一个用于多用户文本会议(群聊)的协议,类似于聊天室、QQ群等。由于它作为一个标准协议在定义模型上力求完备,涵盖了现实中的绝大部分IM产品模型,而现实中的IM产品基本都只实现了XMPP定义的模型中的一个子集。XMPP定义的一些基本概念:房间:房间的JID标识(例如,),这里"room"是房间的名称而"service"是多用户聊天服务运行所在的主机名房客:房客的
- Tigase8.0 源代码分析: 三、消息流转篇
llooperliang
XMPP的节是使用基本的”push”方法来从一个地方到另一个地方得到消息。因为消息通常是不告知的,它们是一种”fire-and-forget”(发射后自寻目的)的机制来从一个地方到另一个地方快速获取信息消息节有五种不同的类型,通过type属性来进行区分:例如chat类型为chat的消息在两个实体间的实时对话中交换,例如两个朋友之间的即时通讯聊天。除了type属性外,消息节还包括一个to和from地
- Tigase-- 新增Component组件
zelo
开发一个组件(Component)需要做如下几件事儿定义一个组件配置这个组件调用这个组件处理组件收到的消息定义一个组件定义一个最简单的消息组件,需要继承extendsAbstractMessageReceiver类publicclassEchoComponentextendsAbstractMessageReceiver{privatestaticfinalLoggerlog=Logger.get
- Tigase--packet流转机制
zelo
初看Tigase的packet内部流转机制。Tigase通过tigase.io包当中的代码读取网络中的字节数组,然后通过tigase.net包当中的类把字节数组转换为字符,最后通过tigase.xml包当中的XML解析器把这些字符转换成XMLDOM对象。图片流程说明看tigase源码你会发现所有的tigase处理都是基于多线程,每个component都有自己的in和out处理线程,线程间的数据传输
- tigase 的基本使用 (smack)
游园拾忆
连接管理类publicclassGetXMPPConnection{//获取连接publicstaticAbstractXMPPConnectiongetConnection(){AbstractXMPPConnectionconnection;Builderbuilder=XMPPTCPConnectionConfiguration.builder();builder.setSecurityMo
- 即时通讯之客户端篇StropheJs.
zeronlee
javascript
摘要小编是个写了几年php的码农,接触纯Js的项目这也是头一次,另外,IM的服务端是Java(tigase框架),为了解决旧版本BOSH(长轮询)即时消息不稳定问题,决定更换pc网页版为websockt链接,App用socket直连,特此更新服务端到8.0,更新安装期间遇到了不少坑,再次记录,熟练IM或者xmpp协议用法的不用继续看了。怎么添加账户,测试是否成功等工具方法见另一篇传送门基础语法xm
- 即时通讯之服务端篇Tigase.
zeronlee
mysqljava
摘要xmpp是一个应用层协议,主要做网页版即时通讯,是基于RFC3920和RFC3921实现,服务端常见的框架有openfire,tigase,prosody等,这三个都亲自踩过坑,唯有tigase8.0相对牛逼(完善)一些,客户端主要就是strophejs了。tigase是Java基于maven做的,openfire是netty框架,当然这块对于我也是比较难入手,大多是从配置入手。tigase8
- java短路运算符和逻辑运算符的区别
3213213333332132
java基础
/*
* 逻辑运算符——不论是什么条件都要执行左右两边代码
* 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的
* 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。
*
* 并联电路两个开关只要有一个开关闭合,电路就会通。
* 类似于短路或(||),只要有其中一个为true(开关闭合)是
- Java异常那些不得不说的事
白糖_
javaexception
一、在finally块中做数据回收操作
比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。
JDBCAgent jdbc = new JDBCAgent();
try{
jdbc.excute("select * from ctp_log");
}catch(SQLException e){
...
}finally{
jdbc.close();
- utf-8与utf-8(无BOM)的区别
dcj3sjt126com
PHP
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如
- JAVA Annotation之定义篇
周凡杨
java注解annotation入门注释
Annotation: 译为注释或注解
An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa
- tomcat的多域名、虚拟主机配置
g21121
tomcat
众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。
很多朋友搜索的内容基本是告诉我们这么配置:
在Engine标签下增面积Host标签,如下:
<Host name="www.site1.com" appBase="webapps"
- Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )
510888780
linuxcapistrano
1.ssh -v
[email protected] 出现
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
错误
运行状况如下:
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuratio
- log4j的用法
Harry642
javalog4j
一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中
- mysql、sqlserver、oracle分页,java分页统一接口实现
aijuans
oraclejave
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
 
- Hessian 简单例子
antlove
javaWebservicehessian
hello.hessian.MyCar.java
package hessian.pojo;
import java.io.Serializable;
public class MyCar implements Serializable {
private static final long serialVersionUID = 473690540190845543
- 数据库对象的同义词和序列
百合不是茶
sql序列同义词ORACLE权限
回顾简单的数据库权限等命令;
解锁用户和锁定用户
alter user scott account lock/unlock;
//system下查看系统中的用户
select * dba_users;
//创建用户名和密码
create user wj identified by wj;
identified by
//授予连接权和建表权
grant connect to
- 使用Powermock和mockito测试静态方法
bijian1013
持续集成单元测试mockitoPowermock
实例:
package com.bijian.study;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import or
- 精通Oracle10编程SQL(6)访问ORACLE
bijian1013
oracle数据库plsql
/*
*访问ORACLE
*/
--检索单行数据
--使用标量变量接收数据
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
select ename,sal into v_ename,v_sal
from emp where empno=&no;
dbms_output.pu
- 【Nginx四】Nginx作为HTTP负载均衡服务器
bit1129
nginx
Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:
负载均衡的好处
增加可用资源
增加吞吐量
加快响应速度,降低延时
出错的重试验机制
Nginx主要支持三种均衡算法:
round-robin
l
- jquery-validation备忘
白糖_
jquerycssF#Firebug
留点学习jquery validation总结的代码:
function checkForm(){
validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID
errorElement :"span",// 使用"div"标签标记错误, 默认:&
- solr限制admin界面访问(端口限制和http授权限制)
ronin47
限定Ip访问
solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。
可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。
我们先看如何通过tomcat配置http授权限制。
第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如:
<userusername="ad
- 多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
bylijinnan
java多线程
public class IncDecThread {
private int j=10;
/*
* 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
* 两个问题:
* 1、线程同步--synchronized
* 2、线程之间如何共享同一个j变量--内部类
*/
public static
- 买房历程
cfyme
2015-06-21: 万科未来城,看房子
2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675
2015-06-27: 房子首付,签完合同
2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。
首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-
- [军事与科技]制造大型太空战舰的前奏
comsci
制造
天气热了........空调和电扇要准备好..........
最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界..........
所以,我们不得不关
- dateformat
dai_lm
DateFormat
"Symbol Meaning Presentation Ex."
"------ ------- ------------ ----"
"G era designator (Text) AD"
"y year
- Hadoop如何实现关联计算
datamachine
mapreducehadoop关联计算
选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。
以关联计算为例。
假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?
&nbs
- 用户模型中修改用户信息时,密码是如何处理的
dcj3sjt126com
yii
当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。
场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。
面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这
- 中文 iOS/Mac 开发博客列表
dcj3sjt126com
Blog
本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。
本博客列表涉及的文章内容支持 定制化Google搜索,特别感谢 JeOam 提供并帮助更新。
本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢 lcepy 提供自动转换脚本。这里有导入教程。
- js去除空格,去除左右两端的空格
蕃薯耀
去除左右两端的空格js去掉所有空格js去除空格
js去除空格,去除左右两端的空格
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g
- SpringMVC4零配置--web.xml
hanqunfeng
springmvc4
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。
ServletContainerInitializer:启动容器时负责加载相关配置
package javax.servlet;
import java.util.Set;
public interface ServletContainer
- 《开源框架那些事儿21》:巧借力与借巧力
j2eetop
框架UI
同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。
故事1:巧借力,乌鸦也可以吃核桃
有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。
核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,
- JQuery EasyUI 验证扩展
可怜的猫
jqueryeasyui验证
最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。
以下内容只需要在公用js中添加即可。
使用类似于如下:
<input class="easyui-textbox" name="mobile" id="mobile&
- 架构师之httpurlconnection----------读取和发送(流读取效率通用类)
nannan408
1.前言.
如题.
2.代码.
/*
* Copyright (c) 2015, S.F. Express Inc. All rights reserved.
*/
package com.test.test.test.send;
import java.io.IOException;
import java.io.InputStream
- Jquery性能优化
r361251
JavaScriptjquery
一、注意定义jQuery变量的时候添加var关键字
这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:
$loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的
二、请使用一个var来定义变量
如果你使用多个变量的话,请如下方式定义:
. 代码如下:
var page
- 在eclipse项目中使用maven管理依赖
tjj006
eclipsemaven
概览:
如何导入maven项目至eclipse中
建立自有Maven Java类库服务器
建立符合maven代码库标准的自定义类库
Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。
我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把
- 中国天气网省市级联页面
x125858805
级联
1、页面及级联js
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&l