您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.
快速入门:使用 C# 通过 Azure Functions 和 SignalR 服务创建聊天室
09/25/2020
本文内容
使用 Azure SignalR 服务可以轻松地将实时功能添加到应用程序。 Azure Functions 是一个无服务器平台,可让你在不管理任何基础结构的情况下运行代码。 本快速入门介绍了如何使用 SignalR 服务和 Functions 构建无服务器的实时聊天应用程序。
先决条件
如果尚未安装 Visual Studio 2019,可以下载并使用 免费 的 Visual Studio 2019 Community Edition。 在安装 Visual Studio 的过程中,请确保启用“Azure 开发”。
也可以使用 Azure Functions Core Tools (v2)、.NET Core SDK 以及你喜欢的代码编辑器在命令行(macOS、Windows 或 Linux)上运行本教程。
如果还没有 Azure 订阅,可以在开始前创建一个免费帐户。
遇到问题? 尝试使用故障排除指南或通知我们。
登录 Azure
使用 Azure 帐户登录到 https://portal.azure.com/ 的 Azure 门户。
遇到问题? 尝试使用故障排除指南或通知我们。
创建 Azure SignalR 服务实例
你的应用程序将连接到 Azure 中的 SignalR 服务实例。
选择 Azure 门户左上角的“新建”按钮。 在“新建”屏幕中,在搜索框中键入“SignalR 服务” ,然后按 Enter。
从搜索结果中选择“SignalR 服务” ,然后选择“创建” 。
输入以下设置。
设置
建议的值
说明
资源名称
全局唯一名称
用于标识新的 SignalR 服务实例的名称。 有效的字符是 a-z、0-9 和 -。
订阅
订阅
在其下创建此新 SignalR 服务实例的订阅。
myResourceGroup
要在其中创建 SignalR 服务实例的新资源组的名称。
位置
美国西部
选择你附近的区域。
定价层
免费
免费试用 Azure SignalR 服务。
单位计数
不适用
单位计数指定 SignalR 服务实例可以接受的连接数。 它只能在标准层中配置。
服务模式
无服务器
用于 Azure Functions 或 REST API。
选择“创建” 以开始部署 SignalR 服务实例。
部署该实例后,在门户中打开它并找到其“设置”页。 仅当通过 Azure Functions 绑定或 REST API 使用 Azure SignalR 服务时,才将“服务模式”设置更改为“无服务器” 。 否则,将其保留在“经典” 或“默认” 中。
遇到问题? 尝试使用故障排除指南或通知我们。
克隆示例应用程序
在部署该服务时,让我们切换到使用代码。 克隆来自 GitHub 的示例应用,设置 SignalR 服务连接字符串,并在本地运行该应用程序。
打开 git 终端窗口。 切换到要克隆示例项目的文件夹。
运行下列命令,克隆示例存储库。 此命令在计算机上创建示例应用程序的副本。
git clone https://github.com/Azure-Samples/signalr-service-quickstart-serverless-chat.git
遇到问题? 尝试使用故障排除指南或通知我们。
配置和运行 Azure 函数应用
启动 Visual Studio(或其他代码编辑器),并打开所克隆存储库的 src/chat/csharp 文件夹中的解决方案。
在打开 Azure门户的浏览器中,通过在门户顶部的搜索框中搜索先前部署的 SignalR 服务实例的名称,确认该实例已成功创建。 选择该实例以将其打开。
选择“密钥”以查看 SignalR 服务实例的连接字符串。
选择并复制主连接字符串。
返回到 Visual Studio 的“解决方案资源管理器”,将 local.settings.sample.json 重命名为 local.settings.json。
在 local.settings.json 中,将连接字符串粘贴到 AzureSignalRConnectionString 设置的值中。 保存文件。
打开 Functions.cs。 此函数应用中有两个 HTTP 触发的函数:
GetSignalRInfo - 使用 SignalRConnectionInfo 输入绑定来生成并返回有效的连接信息。
SendMessage - 在请求正文中接收聊天消息,并使用 SignalR 输出绑定将消息广播到所有连接的客户端应用程序。
使用以下选项之一在本地启动 Azure 函数应用。
Visual Studio:在“调试”菜单中,选择“开始调试”以运行应用程序。
命令行:执行以下命令以启动函数主机。
func start
遇到问题? 尝试使用故障排除指南或通知我们。
运行 Web 应用程序
备注
HTML 文件的源位于 /docs/demo/chat-v2/index.html。 如果你想要自行托管 HTML,请在 /docs/demo/chat-v2 目录中启动本地 HTTP 服务器,如 http-server。 请确保将原点添加到 local.settings.json 中与示例类似的 CORS 设置。
"Host": {
"LocalHttpPort": 7071,
"CORS": "http://localhost:8080,https://azure-samples.github.io",
"CORSCredentials": true
}
系统提示输入函数应用的基 URL 时,输入 http://localhost:7071。
出现提示时输入用户名。
Web 应用程序调用函数应用中的 GetSignalRInfo 函数来检索连接信息以连接到 Azure SignalR 服务。 连接完成后,将显示聊天消息输入框。
键入消息,然后按 Enter。 应用程序将该消息发送到 Azure Function 应用中的 SendMessage 函数,然后后者使用 SignalR 输出绑定将该消息广播到所有连接的客户端。 如果一切正常工作,该消息应该出现在应用程序中。
在另一个浏览器窗口中打开另一个 Web 应用程序实例。 你将看到发送的任何消息都将出现在应用程序的所有实例中。
遇到问题? 尝试使用故障排除指南或通知我们。
清理资源
如果不打算继续使用此应用,请按照以下步骤删除本快速入门中创建的所有资源,以免产生任何费用:
在 Azure 门户的最左侧选择“资源组”,,然后选择创建的资源组。 或者,可以使用搜索框按名称查找资源组。
在打开的窗口中选择资源组,然后单击“删除资源组”。
在新窗口中键入要删除的资源组的名称,然后单击“删除”。
遇到问题? 尝试使用故障排除指南或通知我们
后续步骤
在本快速入门中,你在 Visual Studio 中生成并运行了一个实时无服务器应用程序。 接下来,详细了解如何使用 Visual Studio 开发和部署 Azure Functions。