Python中文
首页
教程
问答
标签
搜索
登录
注册
使用python flask中的redis实时发送消息
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>下面是一个简单的应用程序发送mesg到浏览器。如果redis通道有一个新的mesg,它将被发送,或者以非阻塞的方式发送最后知道的值。 但我做错了什么。有人能帮我理解吗</p> <pre><code>from gevent import monkey, Greenlet monkey.patch_all() from flask import Flask,render_template,request,redirect,url_for,abort,session,Response,jsonify app = Flask(__name__) myglobaldict = {'somedata':''} class RedisLiveData: def __init__(self, channel_name): self.channel_name = channel_name self.redis_conn = redis.Redis(host='localhost', port=6379, db=0) pubsub = self.redis_conn.pubsub() gevent.spawn(self.sub, pubsub) def sub(self,pubsub): pubsub.subscribe(self.channel_name) for message in pubsub.listen(): gevent.spawn(process_rcvd_mesg, message['data']) def process_rcvd_mesg(mesg): print "Received new message %s " % mesg myglobaldict['somedata'] = mesg g = RedisLiveData("test_channel") @app.route('/latestmessage') def latestmessage(): return Response(myglobaldict,mimetype="application/json") if __name__ == '__main__': app.run() </code></pre> <p>在javascript方面,我只是使用一个简单的$.ajaxget来查看消息。 但是客户端<code>http://localhost:5000/latestmessage</code>即使在redis更新之后也有旧消息。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>应该是缓存问题。在</p> <p>您可以向从ajax发送的请求<code>http://localhost:5000/latestmessage?t=timestamp</code>添加时间戳或随机数。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
5 回答
如何添加表示整数的擦边字符串?
9 回答
如何添加要在Bokeh中使用的新font.ttf文件?
6 回答
如何添加要显示的矩阵XY轴编号和XY轴
3 回答
如何添加计数?
9 回答
如何添加计数器函数?
10 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
3 回答
如何添加计数器来跟踪while循环中的月份和年份?
10 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
8 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
7 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
5 回答
如何添加评论拉梅尔亚姆
6 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
5 回答
如何添加谷歌地点自动完成到Flask?
5 回答
如何添加超时、python discord bot
3 回答
如何添加超过1dp的检查
2 回答
如何添加距离方法
9 回答
如何添加跟随游戏的敌人精灵
8 回答
如何添加路径以便python可以找到程序?
6 回答
如何添加身份验证/安全性以使用happybase访问HBase?
8 回答