首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聊天应用程序:将Django与sockjs-tornado和redis结合使用

聊天应用程序:将Django与sockjs-tornado和redis结合使用
EN

Stack Overflow用户
提问于 2013-03-03 04:30:31
回答 1查看 1.6K关注 0票数 1

我正在尝试写聊天应用,这里有一些设计的想法:

Django做了主网站服务。

Sockjs-tornado提供聊天服务,我想在他们之间设置redis。

当sockjs-tornado在聊天中收到消息时,它会对消息进行处理并发送给其他连接的客户端,并将其放入redis中,因此Django可以将该消息保存在持久数据库中。我知道我应该使用redis的pubsub函数。我知道如何在tornado (brukva库)中设置它,但是我如何在django中订阅redis的频道?所以我可以在django中接收消息并将其保存到数据库中?你有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-04 07:52:28

我不知道sockjs如何使用,但是这个例子说明了如何在django模型中保存

#在龙卷风中

代码语言:javascript
复制
import brukva  
import tornado.web  
import tornado.websocket

c = brukva.Client()  
c.connect()

class MessagesHandler(tornado.websoket.WebsocketHandler):

    def open(self):
        #....

    def handle_request(self, response):
        pass

    def on_message(self, message):
        #....
        c.publish(self.channel, json.dumps({
            "sender": self.sender_name,
            "text": message,
        }))

        http_client = tornado.httpclient.AsyncHTTPClient()
        request = tornado.httpclient.HTTPRequest(
              '/to/django_project/url/chat_save_base/',

                method="POST",
                body=urllib.urlencode({
                "message": message.encode("utf-8"),
                "sender": self.sender.name,
            })
        http_client.fetch(request, self.handle_request)  

#在django_url中

代码语言:javascript
复制
url(r'/to/django_project/url/chat_save_base/','app.my_view')

#my_view

代码语言:javascript
复制
from django.views.decorators.csrf import csrf_exempt  
from messages.models import Message

@csrf_exempt
def my_view(request):  
    message_text = request.POST.get("message")  
    sender = User.objects.get(id=request.POST.get("sender_id"))  

    message = Message()
    message.text = message_text
    message.sender_id = sender_id    
    message.save()

更多信息来源:http://habrahabr.ru/post/160123/

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15179124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档