gpt4 book ai didi

.NET 4.5 中的网络套接字

转载 作者:行者123 更新时间:2023-12-01 04:03:21 26 4
gpt4 key购买 nike

我想开发一个 Web 应用程序,其中客户端调用服务器上的服务来执行一些涉及某些处理的操作。服务器将进行所有必要的处理,当更新的数据准备就绪时,它将把该数据推送给客户端。目前我正在考虑两种方法: -1. 将 ASP.NET WEB API 与 SignalR 结合使用2. 在 .NET 4.5 中将 WebSockets 与 WCF 结合使用。

我的服务器将在 Windows Server 2012 上,但我的大部分客户端将是 IE 9,我认为它不支持 WebSockets。

如 SignalR 文档中所写,如果在不更改应用程序代码的情况下不支持 WebSockets,它会自动落入长轮询。这是否也被 .NET 4.5 中的 WebSockets 支持,或者我必须手动完成。意思是我是否必须在服务器上同时实现 Pull 方法和 Push 方法。

请指导我,我将遵循哪种方法。

在后面的用例中,我想使用 PhoneGAP 构建此 Web 应用程序,以创建适用于 iOS、Android 和 Windows Phone 的移动应用程序。

最佳答案

WebSockets 不会回退到长轮询(这真的没有意义)。 SignalR 是对 http 传输的更高级别的抽象,这就是它执行回退和其他操作的原因(比如通过连接提供一个很好的编程模型)。

如果您选择在 ASP.NET 上使用 websockets(不确定 WCF),您将针对原始套接字进行编程(这意味着读取/写入数组段等)并且很难做好这方面的工作。如果 websockets 在客户端或服务器上不可用,SignalR 会为您执行此操作并将回退到其他几种传输方式(永久帧、服务器发送的事件、长轮询)。

关于客户端,如果您选择使用 SignalR,则需要使用 SignalR 客户端。我们仅支持 javascript 和 .NET(silverlight、windows phone 8、winrt、.NET 4 和 .NET 4.5)。有些人已经为其他平台(包括 iOS 和 Android)编写了客户端,但我们不维护它们,所以我不能说它们是最新的。

我建议您使用 SignalR,这样您就可以专注于您的应用程序逻辑,而不是搞乱 websockets 的低级编程模型。

关于.NET 4.5 中的网络套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15609490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com