77百科网
当前位置: 首页 生活百科

列举几个即时通信软件(的可用即时通讯工具)

时间:2023-07-27 作者: 小编 阅读量: 3 栏目名: 生活百科

今天给大家推荐一款单机10W 的可用即时通讯工具,她就是:courier - 信使。她是一款简洁轻量的即时通讯工具。

️ 展示截图 核心目标: 完成单机10万 的可用项目

注意: 早期的思路和内容来自J-IM

  1. 单机十万 的目标来自Tio的性能测试,据称可以实现单机百万连接,我寻思着我十万应该问题不大
  2. 从头开始,没有使用J-IM的代码更有掌控力,无论代码好与坏,并且在这个过程中遇到的问题和累积的经验更有价值.(主要是J-IM的代码有些看不懂)
  3. 前端的代码需要有一个与之匹配的后端,否则的话可能是一种灾难
‍ 技术栈

核心Tio,包括http和socket都是tio.没有引入spring系列,所以大部分的内容都需要自己封装,好处是启动快,体积小。 弊端就是方方面面都需要自己考虑。

从登录开始所有的交互全部使用socket io,除minio分片上传使用了http外,目前没有其他使用http的地方。

文件存储使用了minio. 一个标准的数据存储,很香

缓存和数据存储使用mangodb, 同时解决缓存和数据存储的问题(据说挺快的,没有做大量尝试)

使用

运行ImServer下Main方法

打包

运行 mvn clean package

安装教程

教程来自windows docker, linux同理

  1. 安装minio

docker run -d -p 9000:9000 -p 9001:9001 --name minio -v /home/minio/data:/data -v /home/minio/cert:/root/.minio -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" --restart=always quay.io/minio/minio server /data --console-address ":9001"

  1. 安装MongoDB

docker run --name mongo --restart=always -p 27017:27017 -v /home/mongodb:/data/db -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=QuniMade!-d mongo:latest mongod --auth

  1. 安装nginx, 作者使用nginxWebui

# Linuxdocker run -itd -v /home/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --privileged=true --restart=always --net=host cym1102/nginxwebui:latest

  1. 配置minio https访问(此处以自签名为例)下载签名工具 签名工具

使用公网证书可忽略生成的步骤,直接讲证书放进去即可

# 172.17.0.3 是docker minio内部IP, 需要特别注意这个IP在映射出端口的情况下必须写certgen-windows-amd64.exe -ecdsa-curve P256 -host 127.0.0.1,localhost,172.17.0.3,192.168.0.103

放置于抛出的 E:/docker/minio/cert 目录下,完整目录为 E:/docker/minio/cert/certs 重启容器 5. 配置JDK证书信任,否则会抛出下列错误

javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:371)at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:314)

在JDK bin目录下运行

.\keytool -import -alias sslServer_03 -file D:\key\新建文件夹\public.crt -keystore ..\lib\security\cacerts -storepass changeit -v

特别鸣谢

J-IM 提供的思路

文档地址: https://www.o0o0oo.com/

演示地址: https://chat.o0o0oo.com/

前端地址:https://gitee.com/LiLongLong719/im-web

演示账号 a/a 仅演示目的.服务器的内容不定期清理(作者叫礼貌,可以找我聊天哦)

,
    推荐阅读
  • 香蕉不能和八种食物一起吃(香蕉不可以和哪八种食物一起吃)

    香蕉不能和八种食物一起吃哈密瓜。哈密瓜与香蕉同食会导致肾衰与关节病人病症的加重。因此,肾衰者尿少时不宜同食含钾量都高的香蕉和哈密瓜,避免雪上加霜。芋头营养价值高但忌与香蕉同食,同食会引起腹胀,中毒。甘薯是一种药食兼用的健康食品。香蕉、甘薯同食会发生不良生化反应,引起身体不适。所以,气虚体弱的病人在食用寒性水果时更要谨慎适量。西瓜和香蕉都属于寒性水果,香蕉最好不和西瓜一起食用,会引起腹泻。

  • 315有什么用(12315有什么用)

    一直以来中国使用的都是行政加司法另种打假维权手段,这也算是中国特色吧。在中国有庞大的行政执法队伍,虽然每年的315也都能查处一大批假冒伪劣产品,但做为一种政府行为,行政执法无论在效率、效果上都难以满足企业和市场的需要。为此,中国企业和品牌也开始纷纷自己组织团队大张旗鼓的开展打假维权,比如茅台酒、彪马服饰、喜洋洋等等。

  • 电动自行车一块电池有问题会怎样(两款电动自行车电池不合格)

    电动自行车一块电池有问题会怎样本报讯北京市市场监管局今天公布电动自行车用电池质量抽查结果,显示市场上销售的“星恒电源”锂电池和“天能电池”电动车专用蓄电池低温容量、高温容量等项目不合格,市市场监管局已对销售不合格商品的经营主体立案查处,并要求对方主动下架不合格商品。

  • 宝宝一岁前可以吃盐吗(一岁宝宝之前可以吃盐吗)

    易患上呼吸道感染一岁前的宝宝身体各方面还未发育完全,抵抗力是比较差的。而在这时吃盐过量,会使宝宝口腔中的唾液分泌减少,使口腔的溶菌酶相应减少,这样病菌就很容易在口腔滋生,极易导致宝宝上呼吸道感染。对患有心脏病、肾炎和呼吸道感染的儿童,更应严格控制饮食中的盐摄入量。“餐时加盐”,即烹调时或起锅时,少加盐或不加盐,而在餐桌上放一瓶盐,等菜肴烹调好端到餐桌时再放盐。

  • 猕猴桃公母怎么区分(教你这几招轻松辨别)

    猕猴桃公母怎么区分?下面内容希望能帮助到你,我们来一起看看吧!猕猴桃公母怎么区分可以从花朵上区分,从从猕猴桃的花朵上来辨别雄雌是最明显也是最直观的,不过这需要等到果树开花了才能辨别,相对来说花费的时间就比较久。这样看的话还是区分花朵会比较简单,但是当发现有雄株,那么前期的消耗就等于白费了。

  • 长肉就多吃这四种食物吧(长肉最猛的4种主食)

    长肉最猛的4种主食主食是我们每天进食的主要食物,它给我们提供了很多能量主食一般的热量都很高,例如米饭和面条都是高碳水的主食不少小伙伴都想有个好身材,他们认为控制饮食期间少吃米饭和面条就行了,其实还有很多食物可以作为主食。

  • 第四届中国国际茶叶博览会特色亮点一览

    参展企业1500多家,专业采购商已报名3653家,大大超过预期。

  • 水培一帆风顺的养殖方法和注意事项(水培一帆风顺的养殖方法和注意事项介绍)

    温度:一帆风顺喜高温,适宜温度为22-28℃,冬季温度要保持15℃以上。用水:水的温度要保持与室内温度相近,如果使用自来水,最好在室内静置沉淀24小时再使用。用水量要适当,水位保持在其根系长度的四分之三左右就可以了。发黄严重要移植到土壤。修剪时使用的工具要使用酒精消毒,以防感染。叶面要适当喷水,以周围增加空气湿度。

  • 名人紫砂艺术馆(一座紫砂殿堂-东方紫砂街)

    双桥村范巷的南北两侧各建造有一座石板桥,双桥形成对称的格局,亦成为此地的标志,久而久之,约定成俗,这一带的自然村落便定名为“双桥村”。紫砂制品2007年的3月,尹家行政村并入双桥村,成为双桥村的一部分,而这一次,我们所探访的便是位于原尹家村的东方紫砂街。东方紫砂街上的一家店主告诉我们:“外来手艺人每年正以5%的比例迅速增长。”这其实也从一个侧面证明,紫砂文化已经走出宜兴,走向全国乃至世界。

  • 全军出击体验服怎么下载(两种方法任你挑)

    全军出击体验服怎么下载?下面更多详细答案一起来看看吧!自带浏览器下载:桌面找到浏览器;在搜索框输入想要下载的软件名称;找到下载版本,点击下载即可;注意事项:系统自带软件商店下载软件,安装包可自动删除,避免占用内存。