WebSocket 会存在碰包的情况吗?

2018-08-08 11:23:48 +08:00
 e8c47a0d
既然 WebSocket 基于 tcp,那么这里大概能确定的是,在一条连接内,如果服务器或客户端的任意一端连续发消息,另一端也能按顺序收到。但如果,服务器和客户端几乎同时发出一连串消息,那么这些消息的顺序和完整性还能被保证吗?
12142 次点击
所在节点    游戏开发
87 条回复
InternetExplorer
2018-08-08 11:25:02 +08:00
所以你真的了解 TCP 吗
momocraft
2018-08-08 11:26:40 +08:00
碰包这个词第一次听说
Clarencep
2018-08-08 11:27:25 +08:00
第一次听说“碰包”……
cuzfinal
2018-08-08 11:28:33 +08:00
这些低级错误在大佬们设计 tcp 协议的时候早就解决了,还有碰包是什么鬼?
wxt
2018-08-08 11:28:47 +08:00
好像碰瓷
wxt
2018-08-08 11:30:38 +08:00
两个包撞上了,形成了一种原子力量,发生了聚变,产生了物理冲撞,爆炸形成了信息宇宙
opiuy
2018-08-08 11:30:43 +08:00
你把我碰倒了,赔我 10 万个包,这件事就算了
suikator
2018-08-08 11:32:20 +08:00
恭喜 IT 民科喜提碰包😂
suikator
2018-08-08 11:33:19 +08:00
粘包:欢迎碰包弟弟加入这个大家庭😂
elsove812
2018-08-08 11:33:46 +08:00
tcp 包这么智能,都会违章了
CrisTao
2018-08-08 11:35:54 +08:00
你是觉得他们会在同一个通道内撞上吗?当这是开车?
wizardoz
2018-08-08 11:36:09 +08:00
单工、半双工、全双工了解一下。
TCP 是全双工
misaka19000
2018-08-08 11:38:18 +08:00
今日最佳
catcn
2018-08-08 11:39:00 +08:00
碰碰包
catror
2018-08-08 11:40:57 +08:00
你逆行撞到我了,赔我的包
glacer
2018-08-08 11:46:20 +08:00
网线可不是单行道,先补补通信基础吧
towser
2018-08-08 11:46:52 +08:00
TCP 是全双工协议,可以理解为发送路径和接收路径不是一条路,不会 ”碰包“。
blueskit
2018-08-08 11:49:22 +08:00
在同轴电缆时代,倒确实会碰包。
est
2018-08-08 11:49:57 +08:00
LZ 的意思是 websocket 不是严格的 请求 - 响应,而是有可能连续请求中,夹杂着响应。

那么答案是:是的。websocket 是一种双向流协议。你得考虑这种情况。

其实原始的 http 也会有这种情况,只不过反向代理和 web 框架帮你把这事儿处理了。
abcbuzhiming
2018-08-08 11:50:43 +08:00
我还以为说粘包呢,碰包是什么鬼?难道楼主没听说过发送和接收是分开的吗

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

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

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

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

© 2021 V2EX