使用 Azure SignalR 本地仿真器进行无服务器开发
开发无服务器应用程序时,我们提供了 Azure SignalR 本地仿真器,以更轻松地进行本地开发和集成。 仿真器仅适用于无服务器方案,对于 Azure SignalR 服务充当代理的默认模式,可以直接使用自主机 SignalR 进行本地开发。 另请注意,仿真器仅适用于暂时性传输类型(默认类型),不支持持久传输类型。
可用的功能
- 身份验证
- 最新 Rest API 支持
- 上游
演练
我们使用此无服务器示例演示如何使用仿真器。
将示例存储库克隆到本地
git clone https://github.com/Azure/azure-functions-signalrservice-extension.git cd azure-functions-signalrservice-extension/samples/bidirectional-chat
安装模拟器
dotnet tool install -g Microsoft.Azure.SignalR.Emulator
或者,如果已安装仿真器,请将其更新为最新的预览版本:
dotnet tool update -g Microsoft.Azure.SignalR.Emulator
运行仿真器
asrs-emulator
以列出所有可用命令使用以下内容初始化默认的上游设置:
asrs-emulator upstream init
它将默认的
settings.json
创建到当前文件夹中(默认上游UrlTemplate
作为http://localhost:7071/runtime/webhooks/signalr
),这是 SignalR 的本地函数触发器的 URL:{ "UpstreamSettings": { "Templates": [ { "UrlTemplate": "http://localhost:7071/runtime/webhooks/signalr", "EventPattern": "*", "HubPattern": "*", "CategoryPattern": "*" } ] } }
可以编辑文件以使模式更加受限,例如,将
HubPattern
从*
更改为chat
。 修改文件时,其更改会热加载到仿真器中。启动模拟器
asrs-emulator start
成功启动仿真器后,它会生成稍后要使用的 ConnectionString,例如,ConnectionString 为
Endpoint=http://localhost;Port=8888;AccessKey=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGH;Version=1.0;
,如以下屏幕截图所示。仿真器在启动时还提供高级选项,例如,可以使用
asrs-emulator start -p 8999
自定义仿真器使用的端口。 键入asrs-emulator start --help
以检查可用选项。转到子文件夹
csharp
并将local.settings.sample.json
重命名为local.settings.json
,使用仿真器生成的 ConnectionString 填写local.settings.json中AzureSignalRConnectionString的值。 使用存储仿真器时,请填写AzureWebJobsStorage
存储连接字符串(例如UseDevelopmentStorage=true
)。 保存文件,并使用func start
在csharp
子文件夹中运行函数。在浏览器中,导航到
http://localhost:7071/api/index
以播放演示。
后续步骤
本文介绍如何在应用程序中使用 SignalR 服务。 查看以下文章以了解有关 SignalR 服务的更多信息。