[Django] 消息推送

作者: alue | 来源:发表于2022-04-13 22:27 被阅读0次

HTTP机制有个缺陷,就是服务器无法主动向用户推送消息。

想实现下图这种场景的监控,节点1需要向全网发送告警信息,应该怎么实现呢?


最简单的方式是,每个节点的web页面定时向服务器发送请求,获取节点最新的状态信息。

但问题是,如果网络节点特别多,同时告警发生的概率很小的情况下,这种轮询的方式太浪费资源了。

怎么能让web服务实现主动的消息推送呢?

经过实践,我找到了一个适合本场景的架构。

  1. 首先用户向Django发送状态更新请求

  2. 然后用户再向socket.io服务器推送一个事件

  3. socket.io服务器将该事件转发广播给全部节点

  4. 节点收到这个事件后,发起向Django的状态获取请求

  5. Django返回最新的节点状态信息,实现了消息推送。

这个方法,实际上是利用了WebSocket技术,实现了服务器向用户推送信息的功能,弥补了Http的不足。

同时,状态信息仍然由Django来统一管理,避免了数据不一致的情况。

socket.io在这里代替了死板的定时器,而是按需触发请求,提高了计算效率。

相关文章

  • [Django] 消息推送

    HTTP机制有个缺陷,就是服务器无法主动向用户推送消息。 想实现下图这种场景的监控,节点1需要向全网发送告警信息,...

  • vue+django实现一对一聊天功能

    vue+django实现一对一聊天和消息推送的功能。主要是通过websocket,由于Django不支持webso...

  • 消息推送

    推送通知的呈现效果总结 推送通知有5种不同的呈现效果1、在屏幕顶部显示一块横幅(显示具体内容)2、在屏幕中间弹出一...

  • 消息推送

    1、.简述一下消息推送的流程 2、如果不依赖APNS,如何在App进入后台时保证能够接收到远程消息?

  • 消息推送

    推送概念? APNs:Apple Push Notification Service,远程通知只能APNs服务器发...

  • 消息推送

    本地推送 @implementation AppDelegate 远程推送http://blog.csdn.net...

  • 消息推送

  • 消息推送

    http://blog.csdn.net/showhilllee/article/details/8631734

  • 消息推送

    https://www.jianshu.com/p/c58f8322a278

  • 消息推送

    1 什么是消息推送 很多手机APP会不定时的给用户推送消息,例如一些新闻APP会给用户推送用户可能感兴趣的新闻,或...

网友评论

    本文标题:[Django] 消息推送

    本文链接:https://www.haomeiwen.com/subject/uirzsrtx.html