websockets的有趣部分是从服务器向浏览器发送基本上未经请求的内容吗?
好吧,我正在使用GregorMüllegger的django-websocket.在使用Django的websockets时,这是一个非常精彩的早期破解.
我已经完成了"你好世界".其工作方式是:当请求是websocket时,对象websocket将附加到请求对象.因此,我可以在解释websocket的视图中执行以下操作:
request.websocket.send('We are the knights who say ni!')
Run Code Online (Sandbox Code Playgroud)
这很好.我在浏览器中收到的消息就像魅力一样.
但是,如果我想在不发出浏览器请求的情况下这样做呢?
好的,首先我将websocket保存在会话字典中:
request.session['websocket'] = request.websocket
Run Code Online (Sandbox Code Playgroud)
然后,在shell中,我按会话密钥抓取会话.果然,会话字典中有一个websocket对象.快乐!
但是,当我尝试做的时候:
>>> session.get_decoded()['websocket'].send('With a herring!')
Run Code Online (Sandbox Code Playgroud)
我明白了:
Traceback (most recent call last):
File "<console>", line 1, in <module>
error: [Errno 9] Bad file descriptor
Run Code Online (Sandbox Code Playgroud)
伤心.:-(
好了,我不知道很多关于插座什么,但我知道足够嗅出在调试器周围,你瞧,我看到在我的调试器插座(这是联系在一起的真正的WebSocket从请求)已FD = 6,而我从会话保存的网页套接字抓起一个已FD = -1.
套接字导向的人可以帮我解决这个问题吗?