将角度连接到天蓝色服务总线-MEAN堆栈

问题描述 投票:0回答:1

我试图弄清楚如何将我的角度应用程序连接到Azure Service Bus。我尝试执行此操作的原因是为实时拍卖设置实时发布/订阅解决方案。我还没有真正开始使用MEAN堆栈来完成有关文档/教程的工作,因此我试图将它们拼凑在一起。为了连接到我的nodejs后端,我应该在Angular中使用什么建立连接?我看到的所有教程都引用SignalR,但是它们使用的是.net。是否有一个与Nodejs等效的库,还是我需要使用类似this的库?

我感谢任何帮助/指示!

node.js angular azure-functions mean-stack azureservicebus
1个回答
0
投票

尚不完全清楚您是否试图将Angular前端连接到Service Bus,以替代SignalR。如果是这样,这不是一个好主意,因为这会造成严重的安全漏洞。服务总线主要用于服务器之间的通信。在这种情况下,如果您有多个后端节点服务器,则可以使用Service Bus同步它们推送给客户端的数据。

您将使用SignalR向更好的方向发展。实时服务器-浏览器通信中寻找的技术是websockets。 SignalR只是该标准的.NET实现。一旦开始在MEAN堆栈上寻找websocket的实现,您将在寻找指南方面取得更大的成功。以下是一些通用的JS实现示例:Link 1 Link 2

编辑评论回复:您根本不想将angular连接到Service Bus。公开公开密钥后,任何人都可以在总线上读取/写入任何内容。而是让Angular将消息发送到HTTP函数,并将函数send the message发送到服务总线。

此计划的第二个问题是,websockets连接是将数据推送回客户端的部分,它是一个长期运行的连接,具有来回不断的通信。为此的消费和保费计划are not built。在这些计划上尝试使用网络套接字将使您的成本大大高于如果您有大量流量时所需的成本。您需要选择每月费用固定的计划。那时您仍然可以使用功能,但是使用传统的Web应用程序可能会更容易。

在这种情况下,您的系统将如下所示:Angular new message -> HTTP Function/Web App -> Service Bus -> Websocket Function/Web app => Angular如果仅运行单个服务器,则可以完全消除服务总线。

另一个选择是仍然使用HTTP函数来接收新消息,然后使用use the SignalR service(不是.NET库)来处理将数据推送到客户端。这也消除了服务总线。外观如下:Angular new message -> HTTP Function/Web App -> SignalR Service->Angular

© www.soinside.com 2019 - 2024. All rights reserved.