如题,服务器发送消息后,如何知道客户端成功接收到了消息?有什么机制吗?
如题,服务器发送消息后,如何知道客户端成功接收到了消息?有什么机制吗?
|
scriptB0yFeb 28, 2018 via iPhone
1
websocket 是在 tcp 上面的,我觉得可以放心认为发出去的消息一定会被客户端收到吧。
我记得 wensocket 一端发给另一端发不过去会报错的 |
|
BBCCBBFeb 28, 2018
2
加一个确认机制,客户端处理完成之后发送一个确认消息.
|
|
yonglanyouyouFeb 28, 2018
3
应用层加 ack
|
|
ghiei9101Feb 28, 2018
4
有种机制 叫回执
|
|
pathboxFeb 28, 2018 via iPhone
5
同楼上,如果你想自己控制,在应用层知道,可以自己加 ack 机制,但这个机制不要太复杂
|
|
skadiFeb 28, 2018
6
server -> msg+Hash -> client 然后 client->Hash->server
跟楼上的 ack,回执 什么的都是一个意思. |
|
iothFeb 28, 2018
7
websocket 协议,只是保证阻塞的解决,其它在上一层解决。
封包、tcp/udp |
|
8
多谢各位,看来只能自己去实现 ack 了
|
|
phy25Feb 28, 2018 via Android
9
https://stackoverflow.com/questions/23238319/websockets-ping-pong-why-not-tcp-keepalive
以及相关问题,结论是应用层做连接检查比较好。 学到一点:不能只依靠 TCP 的特性来判断服务器到客户端的连接。因为有经过代理的情况,而且可能得等到客户端默认的 TCP 超时时间(比较长)才能检测到连接丢失。 |