有没有一种方法可以使用keepalive_timeout完全关闭websocket?

时间:2020-05-21 20:42:42

标签: nginx websocket

我有一个设置,其中有一个客户端通过nginx代理使用websockets连接到服务器(这样叫吗?)。它正在使用upstream模块。

为了不浪费宝贵的资源,我们将keepalive_timeout 10m;设置为10分钟的超时时间。

一切都进展顺利,直到我们想向用户显示有意义的诊断信息,以说明客户端断开连接的原因。超时结束时,websocket不会干净关闭,而javascript websocket onclose事件显示一个空字符串作为关闭的原因,错误代码1006和wasClean属性为false。这对我们不利,因为我们要么将意外的websocket关闭视为隐藏实际错误的正常超时,要么将它们全部视为错误,并可能使我们的用户将错误消息误认为正常行为。

当nginx中的超时超时时,是否可以正确关闭websocket?如果没有,可以在断开事件中添加原因字符串吗?还是有办法至少使闭包具有不同的错误代码?

0 个答案:

没有答案