我正在尝试编写将使用uwsgi的websocket实现的Django应用程序。根据uWSGI的手册提出了这样的观点:
def live(request):
uwsgi.websocket_handshake(request.META["HTTP_SEC_WEBSOCKET_KEY"], request.META.get("HTTP_ORIGIN", ""))
try:
while True:
msg = uwsgi.websocket_recv()
uwsgi.websocket_send(msg)
except IOError:
log.debug("Client %s run away, ending connection..." % request.META["REMOTE_ADDR"]);
一切都很好,但在浏览器关闭页面后会抱怨该视图没有返回HttpResponse对象。好的,但如果我将返回HttpResponse,稍后wsgi处理程序将上升IOError:已经发送的头文件 - 这是正确的,来自uwsgi的websockets正在发送头文件。
问题是:如何强迫Django保持安静并且不发送任何内容?或者也许uwsgi有一些功能来涵盖这种情况?