对django的websocket支持。

dwebsocket的Python项目详细描述


=====
dwebsocket
=====


**dwebsocket**模块为django提供了websocket
协议的实现。

此模块实现了websocket协议的最终版本,定义见"rfc 6455<;http://tools.ietf.org/html/rfc6455>;"。某些
浏览器版本(特别是Safari 5.x)实现了
协议的早期草稿(称为"草稿76"),与此模块不兼容。

基于**dwebsocket**模块的django websocket开发,django websocket
模块位于'https://github.com/gregmuelleggerger/Django WebSocket`.
谢谢Gregor Müllegger。

用法
=


如果您只想处理单个视图的WebSocket
连接,则可以使用"Accept_WebSocket``装饰器-它还会将标准的HTTP请求路由到视图。使用"require-websocket"只允许websocket
连接,但拒绝普通的http请求。


``dwebsocket.middleware.websocketmiddleware``添加到
``中间件类``设置中。这仍然会拒绝正常视图的websockets。必须在视图上设置"accept-websocket"属性以允许
websockets。

ebsocket``将附加以下属性/方法。
如果使用中间件,则这些属性始终可用。

`` request.is-websocket()``
=-


如果请求具有有效的websocket,则返回"true";如果请求为nor,则返回"false"MAL HTTP请求。在可以接受这两种类型的请求的视图中使用此方法来区分它们。

``request.websocket``
----


在建立websocket之后,请求将具有一个``websocket`
属性,该属性提供一个简单的api来与E客户端。如果'request.is-websocket()``返回'false`,则此
属性将为'none`。

在客户端接收到消息或关闭连接之前,它不会返回
。在这种情况下,
方法将返回``none`.

``websocket.read()``
~~~~~~~~~~~~~~~~~~~~~~~~

``read``方法将返回一条新消息(如果可用)或``none`
(如果没有从客户端接收到新消息)。它是一个非阻塞性的
非阻塞性的替代方法,替代了``wait()```wait()``方法。

>
>`websocket.websocket.count\messages()````
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/>如果有新消息,则返回"true"还有其他可用的,还有"false``````````````websocket.websocket.send(消息)```
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~迭代器。它将生成
客户端发送的每个新消息,并在客户端关闭连接后停止迭代。

``websocket.is_closed()``
~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果websocket已关闭,则返回到"true",否则返回"false"。

如果客户端请求
WebSocket连接,但请求格式不正确或不受
*dwebsocket*


示例
===



从客户端接收一条消息,将该消息发送回客户端并关闭连接(从视图返回):

从dwebsocket导入需要一次def echo(请求):

@需要一次websocket
正常获取请求:

来自django.http导入httpresponse
来自dwebsocket导入接受websocket

def修改消息(消息):
返回消息。lower()

@accept接受websocket
def lower\case(请求):
如果不请求,则为websocket(:
消息=请求。获取["消息"]
消息=修改消息(消息)
返回HttpResponse(消息)
其他:
请求中的消息。WebSocket:
消息=修改消息(消息)
请求.websocket.send(消息)



change websocket backends
---------


在settings.py文件中添加"websocket_factory_class":

websocket_factory_class='dwebsocket.backends.uwsgi.factory.uwsgiwebsocketfactory'


uwsgi--http:8080--http websockets--processes 1\
--wsgi file wsgi.py--async 30--ugreen--http timeoUT 300



在生产中使用
----


欢迎任何形式。提出问题、报告错误、请求新功能、大发雷霆或告诉我您可能有的任何其他评论。


我们的手脏了:

-从github获取代码:https://github.com/duanhongyi/dwebsocket
-开始编码:)
-向我发送拉取请求或带有修补程序的电子邮件。



==


0.2.1版

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
图像处理Java 8 ImageIO在Linux中无法正确读取JPEG   spring如何用Java 1.4兼容版本替换@Resource注释   java Http请求参数类型传播   在web浏览器中看不到Java Maven Tomcatplugin web应用程序   jvm在Java中使用直接内存的目的是什么?   如何从列表转换为字符串java   java setAdapter gridview发送上下文   SwingJava。方法上的lang.NullPointerException   java什么是shell脚本、makefile和ant文件   当使用getGraphics()方法时,java JPanel图形会闪烁   java如何将迭代转换为递归?   java为什么我的抽屉菜单在同一个XML上有ConstraintLayout时没有响应?   java如何在图像上画一个圆?   Android studio:Rabbitmq:Error:java。lang.ClassNotFoundException:类io。千分尺。果心仪器找不到仪表注册表