5

我的应用程序希望将$env->{'psgix.io'}句柄传递给单独的进程以进行进一步的 WebSocket 处理。通过 UNIX socketdup()的句柄传递,所以我真的不关心从应用程序返回任何答案到 PSGI 服务器。但是我看不到只是静默关闭连接而不从应用程序返回任何响应的选项。当我什么都不返回时,PSGI 服务器不高兴并记录“500 内部服务器错误”。当我只返回类似的代码引用sub {}时,Twiggy 很高兴,但 uWSGI 却不高兴。任何其他有效的 PSGI 答案都会破坏 WebSocket 协议。

我尝试dup()原始处理并返回 WebSocket 握手的最后一部分作为 PSGI 答案,它与 uWSGI 一起工作,但与 Twiggy 无关。

我查看了不同的 PSGI/WebSocket 实现,他们执行以下操作之一:

  1. 在 WebSocket 关闭之前不要从处理程序返回;
  2. 返回某种sub {}.

在 PSGI 协议中返回无应答和静默关闭连接的正确方法是什么?

更新:看起来 Twiggy[]用作PSGI 取消消息。我的补丁uwsgi已成功合并。

4

0 回答 0