使在Django通过Tornado运行Sockjs服务器变得容易
django-sockjs-tornado的Python项目详细描述
使在Django通过Tornado轻松运行SockJS服务器
这个包基本上是sockjs-tornado上的一个薄包装,这使得它非常简单 在sockjs Websocket emulation library之上编写基于websocket的应用程序
有了这个包装,你基本上可以访问你的所有其他东西 Django项目的需求,如模型和 设置。
因为您需要运行两个进程(一个用于runserver(或wsgi) 其中一个用于socketserver,意思是这两个实际上是分开的 python进程,因此您不能轻松地执行注册之类的操作 在一个过程中发出信号并触发它们,在另一个过程中激发它们。
入门
在如下位置创建一个类:
from sockjs.tornado import SockJSConnection class MyConnection(SockJSConnection): def on_open(self, request): pass def on_message(self, message): pass def on_close(self): pass
接下来,你需要把这个的位置放在 settings.py类似的内容:
SOCKJS_CLASSES = ( 'myproject.myapp.myfile.MyConnection', )
接下来,要启动服务器,只需运行:
python manage.py socketserver [--help]
您的常规django服务器也将位于一个单独的终端中:
python manage.py runserver
现在您应该能够使用 sockjs-client你可以 首先下载latest minified version from the CDN
一个简单的应用程序可能如下所示:
sock = new SockJS('http://localhost:9999/echo'); sock.onmessage = function(e) { console.log(e.data); }; sock.onclose = function() { console.log('closed :('); }; sock.onopen = function() { console.log('opened :>'); letTheMadnessBegin(); }; function letTheMadnessBegin() { // silly, but you get the idea sock.send(JSON.stringify({ name: $('#name').text(), message: $('input').val() })); }
想入非非
当然,你还可以做很多事情。为了 例如,您可能需要添加某种形式的身份验证。自从 打开处理程序收到一个请求,您可以使用该请求来请求 请求.获取cookie()作为练习留给读者
下面的这个包中包含了一个更为奇特的示例 可能会给你一些想法的例子这是一个完全有效的聊天 只起作用的应用程序。
这个包主要基于Serve Koval在sockjs-tornado上的惊人工作,它有很多 可能有助于您的示例和文档。例如,它列出 一个你可能需要的单反配置样本 您的项目正在运行,因为您无法继续在 生产系统