首页
关于
壁纸
直播
留言
友链
统计
Search
1
《三国志英杰传》攻略
6,034 阅读
2
Emby客户端IOS破解
5,767 阅读
3
白嫖Emby
5,764 阅读
4
《吞食天地1》金手指代码
4,691 阅读
5
破解emby-server
4,039 阅读
moonjerx
game
age-of-empires
zx3
san-guo-zhi
尼尔:机械纪元
net
emby
learn-video
docker
torrent
photoshop
route
minio
git
ffmpeg
im
vue
gitlab
typecho
svn
alipay
nasm
srs
mail-server
tailscale
kkfileview
aria2
webdav
synology
redis
oray
chemical
mxsite
math
π
x-ui
digital-currency
server
nginx
baota
k8s
http
cloud
linux
shell
database
vpn
esxi
rancher
domain
k3s
ewomail
os
android
windows
ios
app-store
macos
develop
java
javascript
uniapp
nodejs
hbuildx
maven
android-studio
jetbrain
jenkins
css
mybatis
php
python
hardware
hard-disk
pc
RAM
software
pt
calibre
notion
office
language
literature
philosophy
travel
登录
Search
标签搜索
ubuntu
mysql
openwrt
zerotier
springboot
centos
openvpn
jdk
吞食天地2
synology
spring
idea
windows11
吞食天地1
transmission
google-play
Japanese
xcode
群晖
kiftd
MoonjerX
累计撰写
370
篇文章
累计收到
459
条评论
首页
栏目
moonjerx
game
age-of-empires
zx3
san-guo-zhi
尼尔:机械纪元
net
emby
learn-video
docker
torrent
photoshop
route
minio
git
ffmpeg
im
vue
gitlab
typecho
svn
alipay
nasm
srs
mail-server
tailscale
kkfileview
aria2
webdav
synology
redis
oray
chemical
mxsite
math
π
x-ui
digital-currency
server
nginx
baota
k8s
http
cloud
linux
shell
database
vpn
esxi
rancher
domain
k3s
ewomail
os
android
windows
ios
app-store
macos
develop
java
javascript
uniapp
nodejs
hbuildx
maven
android-studio
jetbrain
jenkins
css
mybatis
php
python
hardware
hard-disk
pc
RAM
software
pt
calibre
notion
office
language
literature
philosophy
travel
页面
关于
壁纸
直播
留言
友链
统计
搜索到
1
篇与
im
的结果
2021-09-14
IM即时通讯服务器
仿微信服务器~ 打造分布式高并发IM即时通讯服务器。内附openfire的简短分析。以及微信服务器的分析李林烜软件工程师 2014-07-28 06:14:47我想做JAVAEE的高手们,特别是写移动服务端的程序猿。都绕不开一个话题。即时通讯。大多数APP现在都内置即时通讯功能=============== openfire简要分析 ================我想大部分朋友都是使用 openfire 搭一下万事大吉了吧。 但是不知道各位是否考虑过openfire用于公司生产环境时的劣势。openfire 的协议是XMPP。XMPP协议的弊端就是传输数据量大。古老的XML为基础的协议(古老不太适合)。并且因其复杂的通讯过程,性能会大大的降低。现在互联网异构编程都是用的JSON。他的轻量相信不用再介绍了吧。openfire 的核心是使用了mina . mina 的劣势这里也不说。正因为创始人看到了mina的劣势,才会自立门户写出了netty和自己的东西竞争。哈哈 ============ 协议定型 =============关于协议,这是个很重要的东西,可以说他直接决定性能和稳定性。一个轻量美好的自定义协议,能保证产品的稳定性。说到协议。我们不得不抛弃垃圾似的XMPP,去讨论讨论微信的协议。那是一个经过大考验的协议。腾讯的协议是基于同步的。基于ActiveSync的修改版。取名叫同步协议Sync。这个协议的过程是怎么样的,说清楚之后就好自己写自己创造了:需求:我(A)要向(B) 对方发送一条信息:“你好世界”过程:1、我向服务器POST数据 “你好世界”(只是普通的POST)。服务器返回给我一个token:A1。2、拿着token 向服务器发起TCP传输,推送数据 “A1”3、服务器通过TCP 向B推送一个消息,“A1”,4、B收到推送后,GET请求。 token=a1。拿回我发的数据“你好世界”5、B POST服务器。“我已收到token为a1的消息,可以标记这个消息为已读。”总结起来是A POST要发送的数据 --- > 走TCP协议。 通知服务器。我发了一条新信息 ---- > B得到服务器的推送,得知有新消息要去取 -----> B 用GET取消息 ----> B用POST告诉服务器已经成功取回,该条数据可以作废。以上就是腾讯微信的过程。各位好好看看是可以看懂的。基于同步的协议网上说的太高端化,太学术,难以理解。通俗的就是上面这些。始终保持双方信息的一致。同步性。TCP在这里的功能并不是推送正常数据(比如“你好世界”) 而只是一个通知而已,不参与正常数据的传输。这样就保证了丢包率大大降低,效率大大提高,稳定性大大提高。具体为什么,自己画出普通的通讯图,画出基于同步的,对比一下就理解了。他是TCP+HTTP 配合的。优点互相补。================= 技术架构定型 ===============核心:netty4.x + spring4.xSOA服务总线:Dubbo 淘宝的技术,很可靠。只说这么多。实现本IM分布式的核心。消息队列:activeMQ 高速队列。整流作用。底层数据库:Mongodb 目前网上说的缺点没发现。可能随着版本更新稳定很多了吧。如果业务复杂 推荐mysql+mongodbmysql做业务还是很方便的。毋庸置疑。但不建议抛弃mongodb。JSON 转化: fastjson 淘宝的东西。很不错。目前最高效的吧。日志记录:logback 挺好。比Log4j好使。==================== 代码,我还是希望各位朋友自己先看看上面的文字,自己一定可以写出来一个的。 ====最后贴我的联系方式。QQ631768417 如果实在对代码感兴趣的 请联系我。。最后,鄙人技术不精。希望更厉害的老师能指点一二。也希望研究JAVA 套接字编程的同僚们。能一起探讨。目前我对一个问题很纠结。jboss tomcat等是如何实现集群。希望有识之士能给予解答。
2021年09月14日
78 阅读
0 评论
0 点赞
您的IP: