当前位置: 首页 > 面试题库 >

使用相同的redis.createClient()实例进行发布和订阅

汪鸿志
2023-03-14
问题内容

我正在与redis一起在socket.io客户端之间发布和订阅消息,当客户端连接到服务器(html" target="_blank">io.sockets.on('connection', function(socket){...});)时,我正在使用创建一个subscribe变量redis.createClient(),然后使用subscription函数将客户端订阅到频道。

我的问题是,是否有权使用相同的订阅变量来执行发布操作?还是创建另一个redis.createClient()用于发布消息的实例很重要,所以我将有2个实例,一个用于发布,一个用于订阅…

谢谢


问题答案:

从Redis文档:

一旦客户端进入订阅状态,就不应发出任何其他命令,除了其他SUBSCRIBE,PSUBSCRIBE,UNSUBSCRIBE和PUNSUBSCRIBE命令。

因此,您将需要两个客户端,一个用于订阅,一个用于发布(可能还有其他命令)。



 类似资料:
  • 问题内容: 当我尝试向服务器上的API发送POST请求时遇到问题,我遵循了许多不同的教程,但仍然无法正常工作。我知道我的问题出在POST请求上,但我解决不了!所以这是我在Swift中的代码以及我在php中的API :(是的,我已经用代码中的真实ID替换了xxxx) 总结一下,服务器接收到请求,例如,如果我手动输入一个伪指令,它就可以工作,实际上是POST方法不起作用。。服务器未接收到POST参数

  • 发布和订阅 Meteor 服务端可以通过Meteor.publish发布文档集,同时客户端可以通过Meteor.subscribe订阅这些发布。 任何客户端订阅的文档都可以通过find方法进行查询使用。 默认情况下,每个新创建的 Meteor 应用包含有 autopublish 包,它会自动为每个客户端发布所有可用的文档。 为了可以更细化的控制不同客户端所接收的数据文档,首先应该在终端移除 aut

  • 问题内容: 我正在尝试使用nodejs和node_redis构建一个通用的发布/订阅服务器,该服务器接收带有通道名称的浏览器的请求,并以该通道也已发布的任何数据作为响应。为此,我使用了来自浏览器的长轮询请求,并通过在通道上收到消息时发送响应来处理这些请求。 对于每个新请求,都会创建一个对象来订阅该频道(如果且仅当该频道不存在时)。 这是处理订阅渠道的最佳方法,还是还有其他更直观的方法? 问题答案:

  • 我是MQTT的新手,我有一些问题希望你们能帮助我。我正在做一个学校项目,需要我使用MQTT协议,程序需要用C语言编写。(只是一些背景信息) > MQTT客户端可以同时是发布服务器和订阅服务器吗?也就是说,在不断等待从代理接收消息并执行结果操作的同时,它还能够在需要时将消息发布到代理。 我对MQTT的理解是:MQTT发布者-->MQTT代理-->MQTT订阅者 用白痴的话来说,MQTT的异步模式到底

  • 我需要一个Pub/Sub事件消息系统与Azure Cosmos DB。我使用Azure Cosmos DB Java SDK V4。 我尝试使用基于此示例https://github.com/azure-samples/azure-cosmos--sql-api-samples/blob/main/src/main/Java/com/azure/cosmos/examples/changefeed

  • 我使用Java创建Redis Pub/Sub,其中包含单个主题和单个侦听器,如thank: 这是我在MVCConfiguer中的bean: 这就是我接收消息的地方,请不要使用这个RedisMsghandler类来MvcConfigrer 我的主要目标是创建多个主题和多个听众,如RedisMsgHandler,请告诉我如何做。 我不喜欢创建大量在MessageListener上实现的类,也不喜欢为每