Java 有哪些基于应用层通信协议的框架?

2020-06-28 14:57:42 +08:00
 tctc4869

用基于传输层 tcp 协议的 socket 框架(比如 Netty )要简单的通信,要处理粘半包,如果要考虑传输特殊格式的话剧,那么可以用一用原始的 socket 实现。

如果考虑多文件(上传下载),要考虑更多的情况,要编写的代码就更多。那么有哪些基于应用层协议的通信框架么,比如 WebSocket,包括客户端与服务端。关于 websocket 框架,java 有哪些呢,服务端与客户端?

不一定要与 http 服务端程序挂在一个进程里,可能会单独使用。

4086 次点击
所在节点    Java
45 条回复
tctc4869
2020-06-28 18:55:48 +08:00
@vanxy 了解,我初次看 tcp/ip 就是看国内博客的,经常有讲 tcp/ip 粘包现象
zsdroid
2020-06-29 08:46:40 +08:00
都 0202 年了,还有人做粘包警察,真是服了,一说粘包就是 tcp 没有包。你见过老婆饼里的老婆吗?雪碧里的雪吗。一个字眼也要揪半天。活着累不累啊
labulaka521
2020-06-29 09:35:03 +08:00
@zsdroid 那你知道为什么粘包为什么在英文论坛查不到资料吗
本来是应用层的问题 结果被国内某些人硬塞到 tcp 里 笑死
dallaslu
2020-06-29 12:53:34 +08:00
学到了新词汇:粘半包。

机场的行李传送带( TCP ),上面的行李大多是完好的,打包到箱子里的,虽然有大有小,但是一目了然( HTTP/FTP ...)。整理员能直接拎起来。

突然来了一批散装行李(自定应用协议),整理员傻眼了,只好凭感觉把散件捆好,乘客取行李时肯定是要厮打起来:我少了一件内衣,怎么捆在你这里了!(所谓粘包问题)

问题的原因是乘客存行李时,没有使用标准登机箱,而是选择了整理员难以正确处理的特立独行的方式(未设计好的自定应用协议)。

乘客 A 到知乎上提问:行李被机场传送带吃了是什么体验?(误解粘包问题与 TCP 有关)

乘客 B 经过个人奋斗,在历史进程的影响下改变了机场行李的规则,所有乘客携带物品需要散开传送,为避免混乱,每件单独物品均有乘客编号,同时对整理员进行培训考核。这场变革大大提升了安检与托运效率。(设计良好的自定应用协议)

因为整理员任务繁重,不得不扩大用人规模,成本增加,业绩亏损,不得不重新强制使用标准登机箱。(自定应用协议上线后掉进大坑,只好替换为成熟方案)
tctc4869
2020-06-29 13:29:32 +08:00
@chendy

成熟方案有哪些?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/685326

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX