websocket RFC声明如下:
如果端点收到关闭帧并且之前没有发送关闭帧,则端点必须发送关闭帧作为响应。
后来它也提到:
服务器必须立即关闭底层TCP连接;
当服务器启动紧密握手时,从客户端检索到关闭帧响应时,服务器可以关闭TCP。
关闭握手从客户端开始会发生什么?客户端是否应该重新发送某种类型的消息来指示服务器端点执行TCP关闭?或者服务器是否应该在检索关闭帧时关闭tcp?
答案 0 :(得分:1)
正如您所说,RFC说:
If an endpoint receives a Close frame and did not previously send a Close frame, the endpoint MUST send a Close frame in response.
这适用于服务器和客户端。因此,当关闭源自客户端时,将发生以下情况:
Close
框架Close
帧并将其回送给客户端,因为它本身没有发送一个Close
帧后立即执行此操作)Close
之后直接执行此操作,也可以等到服务器在其结束时将其关闭(由于连接状态发生变化,它会知道这一点)答案 1 :(得分:1)
客户端是否应该重新发送某种类型的消息来指示服务器端点执行tcp关闭?
(a)这正是CLOSE FRAME消息的用途,并且(b)否,服务器必须立即关闭TCP连接,根据您引用的文本。
或服务器是否应该在检索关闭帧时关闭tcp?
这正是它所说的。当然,在向客户发送CLOSE FRAME之后。