Perl 如何在没有响应的情况下关闭PSGI连接?

Perl 如何在没有响应的情况下关闭PSGI连接?,perl,websocket,psgi,Perl,Websocket,Psgi,我的应用程序希望将$env->{'psgix.io'}句柄传递给单独的进程,以便进行进一步的WebSocket处理。通过unixsocketdup()s句柄传递,所以我不想将任何答案从应用程序返回到PSGI服务器。但我看不到在不返回应用程序的任何响应的情况下,仅以静默方式关闭连接的选项。当我什么也不返回时,PSGI服务器不高兴,并记录“500内部服务器错误”。当我只返回像sub{}这样的代码引用时,Twiggy很高兴,但uWSGI不高兴。任何其他有效的PSGI答案都会破坏WebSocket协议

我的应用程序希望将
$env->{'psgix.io'}
句柄传递给单独的进程,以便进行进一步的WebSocket处理。通过unixsocket
dup()
s句柄传递,所以我不想将任何答案从应用程序返回到PSGI服务器。但我看不到在不返回应用程序的任何响应的情况下,仅以静默方式关闭连接的选项。当我什么也不返回时,PSGI服务器不高兴,并记录“500内部服务器错误”。当我只返回像
sub{}
这样的代码引用时,Twiggy很高兴,但uWSGI不高兴。任何其他有效的PSGI答案都会破坏WebSocket协议

我试图
dup()
原始句柄并返回WebSocket握手的最后一部分作为PSGI答案,它对uWSGI有效,但对Twiggy无效

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

  • 在WebSocket关闭之前,不要从处理程序返回
  • 返回某种类型的
    sub{}
  • 在PSGI协议中,什么是正确的方法来返回无应答并静默地关闭连接

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