[英]Redis Pub/Sub with Python backend and Socket.io
我有一个PHP代码,它将数据发布到名为“ MESSAGE_FROM_MARS”的通道。 摘录如下:
function send_data_to_check_spam($feedback)
{
$d_id=$this->redis_connect(11);
//echo $feedback;
//die();
echo "<b style='color:red'>MESSAGE SENT TO SPAM SWATTER</b>"."<br>";
$d_id->PUBLISH("MESSAGE_FROM_MARS",$feedback);
}
有一个服务器端python侦听器,用于接收发布的数据,该代码段如下所示:
r = redis.StrictRedis(host='localhost', port=6379, db=11)
def sum(a,b):
print a+b
def main():
sub = r.pubsub()
sub.subscribe('MESSAGE_FROM_MARS')
python代码进行处理并将结果发布回去。 摘录如下:
r.publish('SPAM_STATUS',spam)
我正在尝试使用socket.io websocket获得结果,该代码段如下。 :
<script>
var socket = io.connect('127.0.0.1:6379');
console.log(socket);
socket.on('SPAM_STATUS', function (data) {
alert("here");
console.log(data);
//socket.emit('my other event', { my: 'data' });
});
</script>
一切都像桃子一样工作,只是socket.io由于某种原因没有从SPAM_STATUS通道获取消息。
我究竟做错了什么? 我是socket.io的新手,请原谅我的天真
据我所知,服务器端需要一个socketIO服务器。
因此,显然,“ var socket = io.connect('your redis port')”将不起作用。
Redis仅用于发布/订阅部分,用于服务器->服务器广播。
为了在服务器和客户端之间进行实时交互,您需要一个socketIO服务器和socketIO客户端。
这是我自己非常有用的工作示例:
https://github.com/jonashagstedt/redis-pubsub-chat/tree/master/redischat
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.