Tornado认证帮助
我刚开始使用tornado,并且已经把它和nginx一起设置好了,能够正常工作,php也没问题。
我想实现的是一个通知系统。
当用户做一些事情,比如发送邮件或者更新数据库中的某个字段,如果另一个用户正在浏览网页,他就会收到通知。
所以我会用jquery的ajax功能把消息和用户名发送给tornado。这个部分我已经搞定了,比如:
$.ajax({url: "/send/notification", data: "data//Serialise from form , dataType: "text", type: "POST",
success: function(response) {
alert("Message From Tornado : "+response);
}, error: function(response) {
console.log("ERROR:", response)
alert("Failed");
}});
然后在Tornado中获取接收者的名字。
recipient = self.get_argument("recipient", None)
现在我想用jquery的ajax函数来长轮询tornado,等待回应。但是我完全不知道怎么让tornado检查这个通知是否是发给他的,如果是的话,就把数据发送给他。
大概是这样的:
if self.current_user == recipient:
self.write(some data);
任何帮助都会非常感激。
1 个回答
0
事情没有那么简单。你需要保持一个等待消息的列表,以及这些消息对应的用户。可以参考这个聊天应用,它是一个不错的起点,虽然它是把每条消息都发给了所有人。
不过,修改起来也不算太难。比如,你可以添加一个dict
,用来把用户和他们等待的消息对应起来。当你检查新消息的时候,就可以看看是否有消息是给那个用户的。或者,你也可以在每次检查时,快速遍历所有消息。