如何在本地排查和调试 Azure Web PubSub 事件处理程序

当 WebSocket 连接建立与 Web PubSub 服务的连接时,该服务会向已注册的上游创建 HTTP POST 请求,并要求获得 HTTP 响应。 我们将上游称为“事件处理程序”,它负责按照 Web PubSub CloudEvents 规范处理传入事件。

事件处理程序在本地运行时,无法公开访问本地服务器。

有两种方法可以将流量路由到 localhost,一种方法是使用 ngroklocaltunnelTunnelRelay 等工具公开 localhost,从而使其可在 Internet 上访问。 另一种方法(也是推荐的方法)是使用 awps-tunnel 通过工具将流量从 Web PubSub 服务隧道传输到本地服务器。

Web PubSub 本地隧道工具在后台与 Web PubSub 服务建立多个持久隧道连接(我们认为它是一种类型的服务器连接)。 每当发生某个事件时,Web PubSub 服务就会通过隧道连接将事件消息路由到本地隧道工具,而本地隧道工具会转换 HTTP 请求并将该请求发送到上游服务器。

本地隧道工具通过 Web 视图页面生动展示工作流。 默认情况下,Web 视图侦听本地端口 upstream port + 1000,而你可以使用命令参数 --webviewPort <your-custom-port> 自定义 Web 视图端口。

Web 视图包含四个选项卡:

  • “客户端”选项卡 - 提供测试 WebSocket 客户端来连接 Web PubSub 并发送数据
  • “Web PubSub”选项卡 - 提供有关 Web PubSub 服务的基本信息,并嵌入“实时跟踪”页面(如果已启用)
  • “本地隧道”选项卡 - 列出了通过本地隧道工具传送到本地服务器的所有请求
  • “服务器”选项卡 - 显示有关本地服务器的基本信息。 它还使用与下面所示的示例代码类似的代码提供了一个内置回显服务器。

Screenshot of showing the traffic inspection.

按照使用本地隧道工具进行开发中的说明操作,在本地安装和运行隧道工具,以在本地开发事件处理程序服务器

后续步骤

使用这些资源开始生成自己的应用程序: