Azure ServiceBus订阅客户端<->服务器通信(接收和响应)

我是K

如何在Azure中与ServiceBus进行客户端<->服务器通信?

当前,我创建了一个新的队列名称“ TestQueue”。我在队列上创建了一个名为“ TestTopic”的主题,并进行了订阅,该订阅使用SqlFilterRule(Device ='A')来监听名称“ DeviceA”。

然后,我创建了一个客户端,该客户端正在将包发送到上面指定的队列中,并且在那里接收消息,我可以对其进行评估,一切都很好。

现在,我想向客户发送一些消息,也许我想与客户“保持联系”。因此,我正在考虑从DeviceA(正在侦听订阅)和客户端(正在与设备通信,也正在侦听订阅)建立“直接”连接。

我希望你理解我想要的,也许服务总线并不是我真正需要的...

克莱门斯·韦斯特

让客户拥有回复队列。然后,客户端可以在发送到最终接收者的消息的ReplyTo属性上传递该队列的地址,然后接收者转身并与该队列进行回话。这是一种常见的模式,也是为什么我们拥有该内置属性。

如果您在SB命名空间之间使用此方法(即,答复队列位于其他命名空间中)或使用区分访问控制,即客户端仅具有“发送”权限,则接收方还需要具有发送回该队列的权限。到目标主题/队列,并且不希望每个人都能够发送到其自己的回复队列。

客户端将短期令牌传递给接收者以允许其发送回复的方法是:

var token = 
        TokenProvider.CreateSharedAccessSignatureTokenProvider( 
                [[rulename]], [[key]]) 
       .GetWebTokenAsync([[targetUri]], string.Empty, true, 
                TimeSpan.FromHours(1))
       .GetAwaiter().GetResult(); 

在名称空间或答复队列中具有“发送”权限的SAS规则,并将其用于[[rulename]]和[[key]]。[[targetUri]]是回复队列(带有名称空间)的标准URI。时间跨度表示该令牌有效的时间。我在这里用了一个小时,但是可能要花几秒钟或几分钟甚至一天。

然后,您将该令牌与消息一起传递;它可以驻留在一个名为“ ReplyToToken”的(自定义)消息属性中。

接收者从该属性中获取令牌,然后使用它创建令牌提供者

TokenProvider.CreateSharedAccessSignatureTokenProvider(tokenValue)));

然后,您使用ReplyTo值的基本URI(无路径)和此令牌提供程序创建一个新的MessagingFactory,然后使用ReplyTo值的路径创建一个QueueClient。

为了使对话持续进行,您可以将QueueClient和factory保留在由ReplyTo URI键控的查找表中,而不是在每次收到消息时都重新创建答复路径,而是从缓存中获取消息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

接收服务器对客户端请求的响应

来自分类Dev

两个Azure VM上的NFS服务器和客户端,客户端无法连接

来自分类Dev

服务器和客户端之间的实时通信

来自分类Dev

Python 服务器和客户端无法通信

来自分类Dev

服务器和客户端之间的持续通信

来自分类Dev

服务器如何从客户端订阅集合?

来自分类Dev

直接从 Angular 客户端订阅 Azure 事件网格主题

来自分类Dev

Azure IoT - 如果服务器和客户端都更改设备孪生属性怎么办?

来自分类Dev

流星在服务器方法和订阅中获取客户端URL

来自分类Dev

流星在服务器方法和订阅中获取客户端URL

来自分类Dev

Windows Azure:客户端和服务器之间的安全绑定不匹配

来自分类Dev

Azure AD不同数量的客户端和服务器声明

来自分类Dev

GWT-(客户端->服务器->客户端)和(服务器->客户端)通信之间的区别

来自分类Dev

使用Azure移动服务路由客户端

来自分类Dev

Angular Azure移动服务客户端API密钥用法

来自分类Dev

在 Microsoft Azure 语音服务中获取客户端密钥

来自分类Dev

服务器到客户端的通信方法

来自分类Dev

Wayland客户端如何与服务器通信?

来自分类Dev

蓝牙客户端-服务器通信[java]

来自分类Dev

Java中从客户端到服务器的通信

来自分类Dev

Swoole WebSocket服务器-客户端之间的通信

来自分类Dev

服务器与客户端之间的通信失败

来自分类Dev

Spring Boot SSL客户端-服务器通信

来自分类Dev

客户端服务器无法通信

来自分类Dev

客户端-服务器Websocket通信

来自分类Dev

服务器到客户端的通信方法

来自分类Dev

客户端与服务器之间的通信

来自分类Dev

OMNET ++无线通信客户端-服务器

来自分类Dev

Tornado TCP服务器/客户端进程通信

Related 相关文章

热门标签

归档