24 条回复  ·  2710 次点击
drymonfidelia 楼主 小成 2025-4-14 21:21:03
如果需要长连接的话是否也可以通过包一层 websocket 来解决 TCP 粘包? @seers @MossFox
sigma65535 初学 2025-4-14 21:32:00
应用层才有包的概念,tcp 是字节流
laikick 小成 2025-4-14 21:37:14
@drymonfidelia 做好分包啊. 不过为什么要自己实现一个 tcp 协议呢?
neoblackcap 小成 2025-4-14 21:50:29
http 协议已经是应用层协议了,nginx 会按照一个个 http 请求转发。nginx 的 http 协议解析属于教科书级别,基本上不用考虑人家会写错。 如果你需要长连接的,请去学习一下 TCP 编程。否则对 TCP 模型不了解,你还无脑上,那就是刻舟求剑。
oneisall8955 小成 2025-4-14 21:51:49
通通抓起来
drymonfidelia 楼主 小成 2025-4-14 21:54:38
@laikick 我就是不想自己实现,所以才问是不是套个 http/ws 就没有粘包问题了啊
ragnaroks 小成 2025-4-14 22:00:34
如果是想找个类 tcp 的东西拿来用,又不用考虑从中解析数据,那把 websocket 当 tcp 用是可以的,websocket 会确保每次 onMessage 都是一个完整的包
henix 小成 2025-4-14 22:06:57
nginx? 应该用编程语言的库或框架吧,比如 java 的 netty 或 Python 的 twisted 推荐用 zeromq 的 request-reply 模式,把底层的 TCP 封装了
kingcanfish 小成 2025-4-14 22:08:14
@unused 可恶啊 被你抢了一楼
LoNeZ 初学 2025-4-14 22:11:09
有时间发帖, 不如直接问 AI ... 要不先把整个协议栈理解一遍?
返回顶部