我在Django上使用Redis的Web套接字。 Django在macOS服务器上运行正常,但是我开始在Redhat Linux服务器上运行它,现在每当我通过websockets发送包时,服务器都会给我这个错误:
ERROR - server - HTTP/WS send decode error:
Cannot dispatch message on channel
u'daphne.response.fzdRCEVZkh!nqhIpaLfWb' (unknown)
注意:当我收到错误时,将正确收到包裹。
我无法找到此错误的任何资源。
我关注official instructions频道。
答案 0 :(得分:3)
根据Andrew Godwin(频道包的开发者)的说法,如果您有一个已断开连接但未从频道组中删除的频道,则会记录此消息:
啊,是的,Daphne比以前更加冗长,我需要删除它。不要担心 - 断开仍然在群组中的频道后,它是完全正常的。但是,您可能希望在断开处理程序中添加Group.discard调用以阻止它。
我使用prod
的自定义impl时遇到了同样的错误。在channels.generic.websockets.WebsocketConsumer
回调中清除群组中的频道后,消息就消失了。
基于类的使用者的简短示例:假设您在连接建立时将客户端添加到名为disconnect
的广播组。然后,在客户端断开连接时,从组中删除其频道:
foo