一个简单的django插件,用于从django服务器向sockjs客户端发送推送通知
djazator的Python项目详细描述
djazator是一个简单的django插件,用于从django服务器向sockjs客户端发送推送消息。它在内部使用“zeromq”和
“sockjs tornado”。djazator可以向所有sockj
客户端和该客户端的子集发送推送通知。
要求:
----
1。` Pyzmq`>;=2.0
2.` Sockjs Tornado`>;=0.0.5
3.` djazator ``django``1.4
>安装:
<
>已安装的应用程序=(
'django.contrib.auth''djazazator````djazator````安装在您的``安装的应用程序中
,
“djazator”,
……
……
:
:
>d扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎pub=tcp://127.0.0.1:8001
服务器
::
djazator服务器--port=8080--mq懔socket=tcp://127.0.0.1:8001--route=/sockjs--address='
您可以完全省略djazator mq,并应将-s/--single参数传递给djazator server
::
append sockjs client library到您的页面
<;script src=“http://cdn.sockjs.org/sockjs-0.3.min.js”>;
…
>在浏览器中打开页面并连接到sockjs tornado服务器
:
定义传入消息的回调
:
从django发送消息
::
})
,您将在js控制台中看到它。}
高级通知:
----
您可以向用户子集发送通知。
:
来自djazator.pub import notify
来自djazator.utils import tokenize
来自django.contrib.auth.models import user
user=user.objects.get(email='djazator@mail.com')
通知({'msg':你好,%s!'%user.username},user s=[user])
token=tokenize(user)
notify({'msg':u'hi user with token%s!'%token},user s=[user])
若要获取此消息,您需要通过token订阅
:
sockjs.prototype.emit=sockjs的函数(名称,数据){//wrapper.send以获取djazator的协议支持
var meta dict={
name:name,
data:data
};
this.send(json.stringify(meta-dict))
};
conn=new sockjs('http://localhost:8080/sockjs')
conn.emit('subscribe',{'token':token});
conn.onMessage=function(e){console.log(e.data);};
`{%djazator_token%}`不过是
``djazator.utils.tokenize``的包装器,返回用
standart django唱歌机制签名的user.id。您可以通过在“settings.py”中设置
“djazator_salt”来配置自己的salt。如果您需要更高的安全性,
您可以提供自己的标记化功能。它应该接受django user
对象并返回令牌。在settings.py.
::
djazator_tokenizer='path.to.my.func'
结论:
----
1。djazator使用iso 8601格式序列化datetime对象。你可以在客户端用'moment.js'.
2解析它。djazator服务器只能处理用特定w构造的客户端消息不能用于客户端到客户端的通信。臀部疼痛https://github.com/mike grayhat/djazator
。ZeroMQ:http://www.zeromq.org/
。moment.js:http://momentjs.com/
。https://github.com/mrjoes/sockjs tornado
https://github.com/zeromq/pyzmq
。http://www.djangoproject.com/
。hipache:https://github.com/dotcloud/hipache
“sockjs tornado”。djazator可以向所有sockj
客户端和该客户端的子集发送推送通知。
要求:
----
1。` Pyzmq`>;=2.0
2.` Sockjs Tornado`>;=0.0.5
3.` djazator ``django``1.4
>安装:
<
>已安装的应用程序=(
'django.contrib.auth''djazazator````djazator````安装在您的``安装的应用程序中
,
“djazator”,
……
……
:
:
>d扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎pub=tcp://127.0.0.1:8001
服务器
::
djazator服务器--port=8080--mq懔socket=tcp://127.0.0.1:8001--route=/sockjs--address='
您可以完全省略djazator mq,并应将-s/--single参数传递给djazator server
::
append sockjs client library到您的页面
…
>在浏览器中打开页面并连接到sockjs tornado服务器
:
定义传入消息的回调
:
从django发送消息
::
})
,您将在js控制台中看到它。}
高级通知:
----
您可以向用户子集发送通知。
:
来自djazator.pub import notify
来自djazator.utils import tokenize
来自django.contrib.auth.models import user
user=user.objects.get(email='djazator@mail.com')
通知({'msg':你好,%s!'%user.username},user s=[user])
token=tokenize(user)
notify({'msg':u'hi user with token%s!'%token},user s=[user])
若要获取此消息,您需要通过token订阅
:
sockjs.prototype.emit=sockjs的函数(名称,数据){//wrapper.send以获取djazator的协议支持
var meta dict={
name:name,
data:data
};
this.send(json.stringify(meta-dict))
};
conn=new sockjs('http://localhost:8080/sockjs')
conn.emit('subscribe',{'token':token});
conn.onMessage=function(e){console.log(e.data);};
`{%djazator_token%}`不过是
``djazator.utils.tokenize``的包装器,返回用
standart django唱歌机制签名的user.id。您可以通过在“settings.py”中设置
“djazator_salt”来配置自己的salt。如果您需要更高的安全性,
您可以提供自己的标记化功能。它应该接受django user
对象并返回令牌。在settings.py.
::
djazator_tokenizer='path.to.my.func'
结论:
----
1。djazator使用iso 8601格式序列化datetime对象。你可以在客户端用'moment.js'.
2解析它。djazator服务器只能处理用特定w构造的客户端消息不能用于客户端到客户端的通信。臀部疼痛https://github.com/mike grayhat/djazator
。ZeroMQ:http://www.zeromq.org/
。moment.js:http://momentjs.com/
。https://github.com/mrjoes/sockjs tornado
https://github.com/zeromq/pyzmq
。http://www.djangoproject.com/
。hipache:https://github.com/dotcloud/hipache