im及时通讯软件openfire+mysql+openldap+spark

     2022-03-31     589

关键词:

             业务场景:对于安全注重和可控性更强的企业,自己搭建聊天系统是很多企业选择,功能大概类似微信,QQ,阿里旺旺等,
                             目前及时通讯软件很多,比如商业的腾讯通,开源的基于XMPP开源协议的也很多,但是发现国内此类文章和案例比较少或者很多有问题,没有系统化解决实际问题,碎片化的知识点。
                             我今天讲的就是openfire+mysql+openldap+spark,此架构适用于企业环境中linux客户端和windows客户端并存办公。对安全性有较强要求和把控的企业,基于开源思想,所以选择的都是开源软件来搭建。
                             openfire:基于XMPP协议的服务器端,用java编写,所以你懂的,需要JDK或者JRE支持,下载地址为:http://www.igniterealtime.org/projects/openfire/plugins.jsp      国外网站,可能比较慢,需要此软件可以提供,

openfire提供基础的IM服务,如果想要更多功能,这个软件可以添加自己需要的插件,有很丰富的插件,直接上传下载的JAR包放到plugs下面就可以啦,下载地址也是上面地址,
spark:基于XMPP协议的客户端,也是java编写,客户端丰富,linux,mac,windows 都有,直接下载安装使用,同样是上面地址下载。
mysql 和openldap不是今天讲解的重点,此次安装全部基于centos7 安装,下面不如正题
一,安装openfire服务端,建议下载openfire的rpm包安装,因为这样可以省去在/etc/systemd/system/openfire.service 自己弄个启动器,
1, rpm -ivh openfire-4.5.2-1.x86_64.rpm 安装openfire rpm包,默认安装在/opt/openfire中,本次是2020年下载最新版本4.5.2
2,设置开机启动systemctl enable openfire
技术图片
2, 安装JDK1.8,也可以不安装,因为此openfire 自带jre,就可以开始试用网页来访问
3,开始安装mysql5.7,我安装5.7版本,5.6也支持,同样rpm安装,然后导入openfire中mysql数据库结构,业支持其他版本数据库
技术图片
4,openfire配置在网页中访问:http://localhost:9090/

技术图片
5, 选择语言
技术图片
6,选择域名和openfire服务器的域名,这里的加密可以暂时不用管
技术图片
7,选择标准数据库,因为标准数据库性能更好
技术图片
8,设置mysql数据库驱动,数据库地址,数据库名称,用户名和密码
技术图片
9,选择用户和组的模式,默认很简单,在数据库中保存用户和组,设置一个管理员密码就OK啦,
技术图片
10,我们这里介绍的是openldap 同步用户和密码
技术图片
11,设置openldap,按照如图所示,后面密码为openldap的管理员密码
技术图片
12,设置用户过滤,这里会去同步部门和人员
技术图片
13,组映射图主要是组映射到openfire和LDAP
技术图片
14,添加openfire管理员,把openldap中一个组织或者用户给授权成管理员,这里是IT组全部成员
需要注意的是,一定要在锯齿设置那里验证下密码是否可用
技术图片
15,使用openldap管理员登陆openfire,查看用户是否同步过来,这里是从openldap同步过来的
技术图片
16,目前已知bug,
二,客户端spark安装
1,windows安装spark,直接到http://www.igniterealtime.org/projects/openfire/plugins.jsp 下载exe客户端下一步即可,登录的时候需要注意,高级里面勾选2项内容

技术图片

技术图片
2,linux spark 安装,以centos7为例,图像界面为gui或者ghome桌面,直接到http://www.igniterealtime.org/projects/openfire/plugins.jsp 下载RPM客户端安装包,JDK环境自带,如果没有自己安装一个JDK1.8,
安装RPM rpm -ivh spark-2.8.3.rpm

查看Linux 环境中Spark 安装位置
技术图片

3,启动spark 这个前台启动,terminal 不能断开和关闭,最好是后台启动

./startup.sh

技术图片
4,目前我没找到systemctl start spark这种方法,或者在图形界面添加启动器方式,如果有大神知道,可以留言
三,openfire 插件 openfire 几乎扩展的功能都是通过插件来实现的,很多人加入到插件中来,其中比较重要的几个插件
1,metting 会议插件,用于视屏会议
2,Client Control 客户端管理插件 ,用户限制客户端发送图片,文件等内容,然后客户端注册,更改组织和人员
3,Candy 是一个web客户端,但是我可以打开,没看到里面内容
4,Monitoring Service 主要是用于显示在线人数,资源使用情况等
5,语音聊天插件 https://code.google.com/archive/p/redfire/downloads 下载后安装好像没啥感觉,
6,其他好用插件也请大神们指点,我安装插件到不少,但是好用的感觉没多少

技术图片

android的开源电话/通讯/im聊天项目全集

一、Android的XMPP客户端BeemBeem是一个运行于Android手机平台的XMPP(jabber)的客户端软件,兼容标准的XMPP服务器和服务,例如Ejabberd,Openfire,Facebook,和Gmail).支持SASL,代理(Socks4,Socks5,HTTP),DNSSRV,andchattingwithaspecificresource.  项目主 查看详情

im社交聊天软件开发,即时通讯聊天源码软件多少钱

IM社交聊天软件开发,即时通讯聊天源码软件多少钱社交IM即时通讯要多少钱,IM社交聊天软件大致要多少钱?一款社交IM软件费用是动态变化过程,而非固定价格。至于IM社交软件价格是多少,还是跟你功能有... 查看详情

im即时通讯开发可靠的亿级im消息投递机制

即时通讯(IM)系统最基础、最重要的是消息的及时性与准确性,及时体现在延迟,准确则具体表现为不丢、不重、不乱序。综合考虑业务场景、系统复杂度、网络流量、终端能耗等,我们的亿级分布式IM消息... 查看详情

im即时通讯软件开发

...ff0c;教你怎么辨别软件开发公司靠谱。一:哪些IM即时通讯软件开发公司不靠谱?用十余年经验,总结出行业公司不靠谱通病。1、对于一款社交IM系统软件,软件公司给出的报价过高或者过低!举个例子吧,... 查看详情

号召大伙完善一个im系统---------c#+js

  在我刚开始做这份工作的时候,我就一直想做个及时通讯的工具。但是那时候,能力不够,知识不足。做了两次都没做成。  现在我工作也有两年多了,懂得多了些,会的也多了些,所以又考虑做这个及时通讯的... 查看详情

如何搭建一个自己的im即时通讯聊天软件?

如何搭建一个自己的IM即时通讯聊天软件?搭建一个自己的IM即时通讯聊天软件的框架如下:1、CIM中的各个组件均采用SpringBoot构建。2、采用Netty+GoogleProtocolBuffer构建底层通信。3、Redis存放各个客户端的路由信息、账号信息、在线... 查看详情

企业im即时通讯软件支持移动办公,提高远程办公效率

...目完成,而他们在沟通的时候所使用的就是企业内部即时通讯软件。使用社交软件来充当企业内部沟通软件的行为已经不可取了,因为可以预见诸多的弊端,尤其是数据安全根本无法保障,把公司的领导和同事全部添加为好友显... 查看详情

如何写一个即时通讯软件?

...nbsp;回答者:网易(杭州)网络有... 10如何编写一个即时通讯软件答:可以用bmob做后端,有即时通讯的demo昨天下班前发布了最新的Bmob_IM_V1.1.2版本的SDK和应用Demo,还未正式通知大家,但还是有人察觉到了,那么,这一次版本更... 查看详情

有关im即时通讯原理

在网上搜索了一些资料,谈谈自己对IM即时通讯的理解IM全称为InstantMessaging,即时通讯,如qq那种的。现在有两个用户UserA,UserB,俩人是一个IM通讯软件的好友,UserA登录,服务器读取他的用户名密码,将他的好友列表传送回来,好... 查看详情

im即时通讯开发:高可用易伸缩高并发的im群聊单聊架构方案设计

...间写扩散为2000条消息的接收问题,如何保证这些消息的及时、有序、高效地送达,涉及到的技术问 查看详情

im即时通讯实现的原理

IM技术全称Instant Messaging,中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。IM的出现和互联网有着密不可分的关系,IM... 查看详情

im即时通讯软件开发网络请求成功率的优化

...验好的具备网络通信能力的移动端应用(尤其是即时通讯这类网络质量高度敏感的应用)有很大的挑战性。 我们平时看到的移动网络主要有如下三个典型特点:   1)移动状态网络信号不稳定,高时延、易... 查看详情

开源im可以开发哪些产品和功能

...加小蓝豆的v:weikeyun24咨询以开源IM为基础,能够及时对软件的功能进行迭代,无论是需要新的功能,还是要对原有的功能进行升级都轻而易举。除了传递最基本的文字信息之外,它还能够轻松支持各种格式的... 查看详情

openfire即时通讯服务搭建与smack访问

Openfire 是开源的、基于可拓展通讯和表示协议(XMPP)、采用Java编程语言开发的实时协作服务器。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。首先到openfire官网上去下载Openfire的服务器包... 查看详情

im即时通讯实现原理

即时通讯(InstantMessenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行... 查看详情

im即时通讯实现原理

即时通讯(InstantMessenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行... 查看详情

im即时通讯软件开发之扫码登录功能

在2维码扫码登录的过程中,大家可能会有疑问:这二维码安全吗?会不会泄漏我的个人信息?我的im系统敢不敢也搞一个扫码登录呢?针对这些顾虑,我们需要了解一下二维码扫码登录背后的技术和逻辑本... 查看详情

你的企业im安全吗?对于私有化的即时通讯软件你了解多少?

企业IM是指企业即时通讯,与微信、QQ等我们常用的个人通讯软件不同,它是供企业内部使用的即时交流与沟通工具。企业员工可以通过安装了即时通讯软件,进行两人以及多人之间的实时沟通及企业内容管理,沟... 查看详情