支持django的带http推流模块的nginx
django_nginx_push_stream的Python项目详细描述
django nginx推流
django支持库,用于 nginx push stream module
快速介绍
nginx push stream module 是nginx的可扩展模块,提供pub-sub功能。
您可以安装nginx二进制文件,其中包括:
在ubuntu上,通过带有push stream module" rel="nofollow">非官方p p a,
$ sudo add-apt-repository ppa:dotz/nginx-with-push-stream-module $ sudo apt-get update $ sudo apt-get install nginx
在MacOS上,通过 自制 和 自制nginx tap ,
$ brew tap denji/nginx $ brew install nginx-full --with-push-stream-module --with-auth-req
可能还有更多(请帮助我改进此文档)。
要使用docker进行开发,请克隆此repo并键入docker compose。 此命令将用nginx推流模块构建包含nginx的docker映像。 启动它。默认情况下,Docker容器的端口80映射到 本地计算机(有关详细信息,请参见 docker compose.yml )
这个包,django nginx push stream,试图释放nginx push的力量 来自Django应用程序的流模块。
在web浏览器中实现实时推送通知的方法有很多。这种方法 是其中之一。它的好处包括不必运行单独的web服务器来处理 websockets和使用相同地址/端口进行实时连接的能力 网页的。
这个模块是django非常非常薄的代码和配置层。它是 是因为需要澄清、记录和整理事情, 并不是因为通过 nginx push stream module发送推送消息很困难。不是的。
设计
django nginx推流包括:
- conf/settings.py中的配置设置
- 调用 core.py 模块,
- 在auth.py中定义的一个小的auth视图,它可以决定是否允许用户订阅 到频道
- 还有一个nginx容器示例( docker/default 和 docker/dockerfile nginx )
- 还有一个示例项目( test_project )可以运行。
django nginx push stream描述了如何订阅 如何向django发送推送通知:
- 匿名用户,
- 已登录会话,
- 所有授权的(松散的)会话。
这里提供了一个非常简单的示例项目。你可以扩展它的功能 使之适合特定的目的。将提供一个项目,扩展 提供图形通知、进度对话框的基本功能 以及作为单独模块的更多信息。
引导示例基础结构
在根目录中键入docker compose up -d 来运行docker服务器。
< Buff行情>$ docker-compose up Starting django-nginx-push-stream_appserver_1 ... done Starting django-nginx-push-stream_webserver_1 ... done Attaching to django-nginx-push-stream_appserver_1, django-nginx-push-stream_webserver_1 appserver_1 |[uwsgi-static] added mapping for /static => /app/test_project/staticroot [... lots of text...]
转到http://127.0.0.1:9080/" rel="nofollow">http://127.0.0.1:9080/ 查看正在运行的应用程序。这是一个简单的聊天应用程序。 键入任何消息,按回车键。它将把消息广播给所有订户。你可以 使用除Web浏览器以外的其他方法订阅(请参见下文)。