- 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是borissun@iteye.com/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
(11:30:24)jabber:Sending(ssl)(youth@10.137.206.114/tigase-3):(11:30:24)jabber:Sending(ssl)(youth@10.137.206.114/tigase-3):(11:30:24)jabber:Sending(ssl)(youth@10.137.206.114/tigase-3):(11:30:24)jabber:
- 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
- 多线程编程之join()方法
周凡杨
javaJOIN多线程编程线程
现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢?
Java实现过程如下:
public class T1 implements Runnabl
- java中switch的使用
bingyingao
javaenumbreakcontinue
java中的switch仅支持case条件仅支持int、enum两种类型。
用enum的时候,不能直接写下列形式。
switch (timeType) {
case ProdtransTimeTypeEnum.DAILY:
break;
default:
br
- hive having count 不能去重
daizj
hive去重having count计数
hive在使用having count()是,不支持去重计数
hive (default)> select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)>1 limit 10;
FAILED: SemanticExcep
- WebSphere对JSP的缓存
周凡杨
WAS JSP 缓存
对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。
现服务
- 设计模式总结
朱辉辉33
java设计模式
1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
&n
- 实例:供应商管理报表需求调研报告
老A不折腾
finereport报表系统报表软件信息化选型
引言
随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标
1、通过报表为采购决策提供数据分析与支撑
2、对供应商进行综合评估以及管理,合理管理和
- mysql
林鹤霄
转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html
mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@centos var]# service mysql
- Linux下多线程堆栈查看工具(pstree、ps、pstack)
aigo
linux
原文:http://blog.csdn.net/yfkiss/article/details/6729364
1. pstree
pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) &n
- html input与textarea 值改变事件
alxw4616
JavaScript
// 文本输入框(input) 文本域(textarea)值改变事件
// onpropertychange(IE) oninput(w3c)
$('input,textarea').on('propertychange input', function(event) {
console.log($(this).val())
});
- String类的基本用法
百合不是茶
String
字符串的用法;
// 根据字节数组创建字符串
byte[] by = { 'a', 'b', 'c', 'd' };
String newByteString = new String(by);
1,length() 获取字符串的长度
&nbs
- JDK1.5 Semaphore实例
bijian1013
javathreadjava多线程Semaphore
Semaphore类
一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
S
- 使用GZip来压缩传输量
bijian1013
javaGZip
启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。
PJL Compressi
- 【Java范型三】Java范型详解之范型类型通配符
bit1129
java
定义如下一个简单的范型类,
package com.tom.lang.generics;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value = value;
}
}
- 【Hadoop十二】HDFS常用命令
bit1129
hadoop
1. 修改日志文件查看器
hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml
cat edits.xml
修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志
2. fsimage查看HDFS中的块信息等
&nb
- 怎样区别nginx中rewrite时break和last
ronin47
在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。
location /
{
proxy_pass http://test;
- java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class CombinationToSum {
/*
第21 题
2010 年中兴面试题
编程求解:
输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,
使其和等
- eclipse svn 帐号密码修改问题
开窍的石头
eclipseSVNsvn帐号密码修改
问题描述:
Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。
解决思路:
删除subclipse记录的帐号、密码信息,重新输入
- [电子商务]传统商务活动与互联网的结合
comsci
电子商务
某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。
如何避免销售量和利润率增加的
- java 解析 properties-使用 Properties-可以指定配置文件路径
cuityang
javaproperties
#mq
xdr.mq.url=tcp://192.168.100.15:61618;
import java.io.IOException;
import java.util.Properties;
public class Test {
String conf = "log4j.properties";
private static final
- Java核心问题集锦
darrenzhu
java基础核心难点
注意,这里的参考文章基本来自Effective Java和jdk源码
1)ConcurrentModificationException
当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是:
1)用listIterator, 它支持在遍历的过程中修改元素,
2)不用listIterator, new一个
- 1分钟学会Markdown语法
dcj3sjt126com
markdown
markdown 简明语法 基本符号
*,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号
空白行表示另起一个段落
`是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签
换行
单一段落( <p>) 用一个空白行
连续两个空格 会变成一个 <br>
连续3个符号,然后是空行
- Gson使用二(GsonBuilder)
eksliang
jsongsonGsonBuilder
转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述
GsonBuilder用来定制java跟json之间的转换格式
二.基本使用
实体测试类:
温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField
- 报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList
gundumw100
android
有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f
- JavaWeb之JSP指令
ihuning
javaweb
要点
JSP指令简介
page指令
include指令
JSP指令简介
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
JSP指令的基本语法格式:
<%@ 指令 属性名="
- mac上编译FFmpeg跑ios
啸笑天
ffmpeg
1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl
2、安装yasm-1.2.0
curl http://www.tortall.net/projects/yasm
- sql mysql oracle中字符串连接
macroli
oraclesqlmysqlSQL Server
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CON
- Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate
qiaolevip
学习永无止境每天进步一点点git纵观千象
// 报错如下:
$ git pull origin master
fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce
rtificate
// 原因:
由于git最新版默认使用ssl安全验证,但是我们是使用的git未设
- windows命令行设置wifi
surfingll
windowswifi笔记本wifi
还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么
教你命令行设置 笔记本电脑wifi:
1、开启wifi命令
netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456
netsh wlan start hostednetwork
pause
其中pause是等待输入,可以去掉
2、
- Linux(Ubuntu)下安装sysv-rc-conf
wmlJava
linuxubuntusysv-rc-conf
安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。
背景知识
sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf
- svn切换环境,重发布应用多了javaee标签前缀
zengshaotao
javaee
更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。
然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。
检出