【问题标题】:Azure Event Grid consume events from Hybrid Connection with NodeAzure 事件网格使用来自与节点的混合连接的事件
【发布时间】:2019-12-09 08:01:51
【问题描述】:

有人能指出我正确的方向吗?我正在与希望让第 3 方从他们那里接收事件数据(创建的 blob 等)的客户合作。 C# 示例效果很好:

https://azure.microsoft.com/en-us/resources/samples/event-grid-dotnet-publish-consume-events/

但是,他们的一些客户正在使用 Node,我们无法让他们连接。当有发送者/侦听器时,示例工作得很好,但侦听器有效地吞下了事件网格事件,因为它们是使用“请求”键发送的,而发送者/侦听器事件是使用“接受”键发送的。

https://github.com/Azure/azure-relay/tree/master/samples/hybrid-connections/node

我可以直接指向每个节点示例(HybridConnectionWebSocktServer.js 等)中正在处理事件并随后被忽略的行。

我也找到并尝试了这个函数示例,但没有成功在本地接收事件网格事件:

https://azure.microsoft.com/is-is/resources/samples/event-grid-node-publish-consume-events/

有更好的例子吗?有没有更好的方法?我们应该从另一个方向来解决这个问题吗?

我们将不胜感激任何帮助、指导或推动正确方向。

【问题讨论】:

    标签: node.js azure-eventgrid


    【解决方案1】:

    我寻求了所有可用的途径来尝试快速解决我的问题。我想在这里发布答案,以防其他人遇到和我一样的麻烦。

    非常感谢那些能够为我指明正确方向并帮助我解决问题的 Microsoft 人员。

    事件网格仅基于 HTTP 构建,因此您通过请求手势获取事件是有意义的。如果你还没有找到,混合连接交互模型的文档是available here

    您正在查看的示例使用了仅适用于 websockets 的 hyco-ws 包。您要使用的包是hyco-https,它允许收听HTTP 消息。此示例展示了如何使用Hybrid Connections with HTTP

    我也尝试过这个示例,但没有看到(或不知道如何访问)事件数据。

    通过添加 req.on 行,我能够找到一种获取数据的方法:

            (req, res) => {
            console.log('request accepted: ' + req.method + ' on ' + req.url);
    
            req.on('data', function(chunk) {
                var bodydata = chunk.toString('utf8');
                console.log(bodydata);
            });
    
            res.setHeader('Content-Type', 'text/html');
            res.end('<html><head><title>Hey!</title></head><body>Relayed Node.js Server!</body></html>');
        });
    

    这写出了我希望在控制台看到的事件。

    【讨论】:

      猜你喜欢
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      相关资源
      最近更新 更多