websocket实时查看日志

几个概念

WSGI: 只是一种通信协议,WSGI协议主要包括server和application两部分,WSGI server负责从客户端接收请求,将request转发给application,将application返回的response返回给客户端;WSGI application接收由server转发的request,处理请求,并将处理结果返回给server。
要实现WSGI协议,必须同时实现web server和web application,当前实现了WSGI application协议的web框架有Django,Flask。虽然Django,Flask框架都有自己实现的简单的WSGI server,生产环境下建议用其他WSGI server。比如 uWSGI和 Gunicorn都是实现了WSGI server协议的服务器。

uswgi: 与WSGI一样是一种通信协议,是uWSGI服务器的独占协议。与WSGI协议是两种东西。

uWSGI:是一个web服务器,实现了WSGI协议、uwsgi协议、http协议等。

ASGI:WSGI是基于HTTP协议模式,不支持WebSocket,而ASGI的出现是为了解决Python常用的WSGI不支持当前Web开发中的一些新的协议标准。ASGI是对WSGI原有模式的支持和WebSocket的扩展,即ASGI为WSGI的超集,ASGI是兼容WSGI。

WebSocket:WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket允许服务端主动向客户端推送数据。在WebSocket协议中,客户端浏览器和服务器只需要完成一次握手就可以创建持久性的连接,并在浏览器和服务器之间进行双向的数据传输。

Channels:Django本身不支持WebSocket,但可以通过集成Channels框架来实现WebSocket,Channels是Django团队研发的一个给Django提供websocket支持的框架,它同时支持http和websocket多种协议。使用channels可以让Django应用拥有实时通讯和给用户主动推送信息的功能。

安装虚拟环境

mkvirtualenv -p /usr/local/bin/python3 website

安装channel

workon website
pip install Django==2.2 -i https://pypi.douban.com/simple/
pip install channels==3.0.4 -i https://pypi.douban.com/simple/
pip install channels-redis==2.4.2 -i https://pypi.douban.com/simple/

新建Django项目

(website) backend % django-admin startproject website

新建应用

(website) website % python manage.py startapp catlog

打开项目并设置虚拟环境

在这里插入图片描述

编辑 website/settings.py文件

# Application definition

INSTALLED_APPS = [
	...
    # 注册应用
    'catlog.apps.CatlogConfig',
    'channels',
]
# 在文件尾部新增如下配置

# 指定ASGI的路由地址
ASGI_APPLICATION = 'website.routing.application'

# 配置django-channels配置
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379
REDIS_PASSWORD = 'password'

CHANNEL_LAYERS = {
   
    'default': {
   
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        'CONFIG': {
   
            "hosts": ["redis://:%s@%s:%d/0" % (REDIS_PASSWORD, REDIS_HOST, REDIS_PORT)],
            "symmetric_encryption_keys": [SECRET_KEY],
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值