• 技术文章 >Python框架 >Django

    django怎么创建websocket

    silencementsilencement2019-08-29 09:28:55原创2986

    伴随着HTML5推出的WebSocket,真正实现了Web的实时通信,使B/S模式具备了C/S模式的实时通信能力。WebSocket的工作流程是这 样的:浏览器通过JavaScript向服务端发出建立WebSocket连接的请求,在WebSocket连接建立成功后,客户端和服务端就可以通过 TCP连接传输数据。因为WebSocket连接本质上是TCP连接,不需要每次传输都带上重复的头部数据,所以它的数据传输量比轮询和Comet技术小了很多。

    安装dwebsocket

    安装方法:

    1.通过pip

    pip install  dwebsocket2

    2.通过下载到本地

    解压,执行 python setup.py install

    使用方法

    如果你想为一个单独的视图处理一个websocklet连接可以使用accept_websocket装饰器,它会将标准的HTTP请求路由到视图中。使用require_websocke装饰器只允许使用WebSocket连接,会拒绝正常的HTTP请求。

    在设置中添加设置MIDDLEWARE_CLASSES=dwebsocket.middleware.WebSocketMiddleware这样会拒绝单独的视图实用websocket,必须加上accept_websocket 装饰器。

    设置WEBSOCKET_ACCEPT_ALL=True可以允许每一个单独的视图实用websockets

    一些方法和属性

    1.request.is_websocket()

    如果是个websocket请求返回True,如果是个普通的http请求返回False,可以用这个方法区分它们。

    2.request.websocket

    在一个websocket请求建立之后,这个请求将会有一个websocket属性,用来给客户端提供一个简单的api通讯,如果request.is_websocket()是False,这个属性将是None。

    3.WebSocket.wait()

    返回一个客户端发送的信息,在客户端关闭连接之前他不会返回任何值,这种情况下,方法将返回None

    4.WebSocket.read()

    如果没有从客户端接收到新的消息,read方法会返回一个新的消息,如果没有,就不返回。这是一个替代wait的非阻塞方法

    5.WebSocket.count_messages()

    返回消息队列数量

    6.WebSocket.has_messages()

    如果有新消息返回True,否则返回False

    7.WebSocket.send(message)

    向客户端发送消息

    8.WebSocket.__iter__()

    websocket迭代器

    专题推荐:django
    品易云
    上一篇:django开发用什么编辑器比较好 下一篇:如何查看django的版本

    相关文章推荐

    • django开发用什么编辑器比较好

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网