gpt4 book ai didi

php - 带有 Python 后端和 Socket.io 的 Redis Pub/Sub

转载 作者:可可西里 更新时间:2023-11-01 11:43:55 28 4
gpt4 key购买 nike

我有一个 PHP 代码可以将数据发布到一个名为“MESSAGE_FROM_MARS”的 channel 。片段如下:

    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 channel 获取消息外,一切都像桃子一样工作。

我做错了什么?我是 socket.io 的新手,请原谅我的天真

最佳答案

据我所知,你需要在服务器端有一个socketIO服务器。

很明显,“var socket = io.connect('your redis port')”不会起作用。

Redis 仅用于发布/订阅部分,用于您的服务器->服务器广播。

对于服务器端和客户端之间的实时交互,您需要一个 socketIO 服务器和 socketIO 客户端。

这是我自己觉得非常有用的工作示例:

https://github.com/jonashagstedt/redis-pubsub-chat/tree/master/redischat

关于php - 带有 Python 后端和 Socket.io 的 Redis Pub/Sub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17961869/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com