c# - SignalR for Desktop-Web 应用程序(C#、.NET/Azure、WinForms)
问题描述
我正在开发一个带有桌面 UI 的 Web 应用程序,它将在 Azure 服务器中使用多个 Azure 包(基于 Web 的应用程序的基础),并将 WinForms 作为各个客户端交互和控制流程的桌面用户界面的内容。
该应用程序的目的是允许用户相互发送文件和链接,并使用推送通知、云存储(和自定义 UI),使其成为一个即时过程。收到通知后,客户可以预览他们的文件/链接(网站),并可以下载/复制链接。
如果我要比较我的应用程序的功能,它会类似于Discord,它是浏览器上的 Web 应用程序,但也是一个可下载的变体。可下载的变体是我想要作为我的应用程序模型的:基于 Web 的,但桌面 UI。
原始术语中的过程是这样的:
客户端打开一个文件并使用用户目录将文件“发送”给另一个客户端。
这实际上是第一个客户端将文件发送到另一个客户端的 Blob 容器,身份由 AD B2C 持有,
接收文件后,多个函数获取文件详细信息(发件人客户端、接收时间、文件/网站类型),
并将其以可自定义的推送通知发送给接收它的客户端,客户端在桌面 UI 通知 UI 中获取它。)
然后,接收客户端可以在 Blob 存储允许的情况下从服务器预览/流式传输它,
甚至可以下载/复制文件/链接。
我了解Azure AD B2C可用于注册用户,Azure Blob Storage存储“发送”文件,Azure Functions用于为每个注册的客户端处理和连续生成容器,并处理客户端之间发送的每个单独通知,但是,我正在休息我的即时通讯技术的 Fence 超过 2 个选项。
我一直在研究SignalR,由于它的瞬时行为,并且与 Azure 相关联,它是一个不错的选择。但是,缺少关于使用 SignalR 的基于 Web 的 WinForms 应用程序的文档(它似乎更侧重于网站,尽管人们已经表示他们已经使用它完成了控制台应用程序等),并且其他人一直在推荐WCF,因为它更老更坚固,并且据说默认情况下更多地使用 Windows 桌面应用程序。
我倾向于 SignalR,因为它不需要服务器基础设施维护,也不需要完成繁重的服务器功能。
那么可以做到吗,如果是这样,我会从哪里开始?
TL.DR/Summary:我正在 Azure Infrastructure 上创建一个基于 Web 的应用程序,我的客户将使用已安装的 WinForms 程序来控制内容流、“发送”内容等。这就像登录网站并接收实时通知,因此 SignalR 是否与客户端桌面应用程序相同,还是 WCF 更合适?
解决方案
推荐阅读
- php - Return all rows from an array
- sql - Use a column as the input parameter to a function and add results to table
- javascript - Flow type: either one property is required or the other
- sql-server - Call stored procedure using ODBC from PHP running on Linux - odbc_prepare not working
- r - How to get elements with max values from list of values in R
- php - 无法在 PHP 中重新计算过滤列的总和
- java - 如何从具有多个属性的类中获取一个特定属性
- node.js - 通过在 Puppeteer 中单击按钮将文件获取到变量
- google-sheets - 如何使用 filter() 函数在另一个单元格中使用条件
- python - Groupby并根据另一列中的日期时间连接多行?