对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版
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版