所以我读到目前用Django实现websocket的最佳选择是使用Tornado运行websocket服务器。
好的,我明白了。
但假设我想在我的django应用程序中发生任何事情时通过websocket服务器广播消息,例如:网络设备突然离线,我希望网络管理员立即得到通知。
我能想到的自然过程是向设备型号注册信号,每当发生有趣的事情时,我必须能够告诉Tornado:嘿,伙计,在广播中向所有连接的管理员发送消息。
但我该怎么做呢?
也许有某种发布/订阅机制?芹菜?
有关于这些东西的文章吗?它非常有趣,但还没有找到任何正确解释的真实用例。
谢谢!
编辑:工作原型
按照公认答案中的建议,我得出了以下结论:https://github.com/ninuxorg/nodeshot/commit/26373a3478d77a8cc8ac8bbd0c1c45694c26a779
进程之间通信的规范方法是队列(或管道)。我不确定multiprocessing
包中的队列是否工作。如果不起作用,可以在文件系统上创建命名管道,并使用os.mkfifo
通过管道进行通信。