我想开发一个Web应用程序,其中客户端调用服务器上的服务来执行一些涉及某些处理的操作.服务器将执行所有必要的处理,当更新的数据准备就绪时,它会将该数据推送到客户端.目前我正在考虑两种方法: - 1.使用带有SignalR的ASP.NET WEB API 2.在.NET 4.5中使用带有WCF的WebSockets.
我的服务器将在Windows Server 2012上,但我的大部分客户端都是IE 9,我认为它不支持WebSockets.
正如SignalR文档中所写,如果不更改应用程序代码就不存在WebSockets支持,它将自动落入Long Polling.是否还支持.NET 4.5中的WebSockets,或者我必须手动执行此操作.意味着我是否必须在服务器上同时实现Pull方法和push方法.
请指导我,我会遵循哪种方法.
在后面的用例中,我想使用PhoneGAP构建此Web应用程序,以便为iOS,Android和Windows Phone创建移动应用程序.
WebSockets不会回归到longpolling(这真的没有意义).SignalR是一种比http传输更高级别的抽象,这就是它做后备和其他事情的原因(比如在连接上提供一个很好的编程模型).
如果你选择在ASP.NET上使用websockets(不确定WCF),你将对原始套接字进行编程(这意味着读/写数组段等)并且做得很好就很难了.如果客户端或服务器上没有websockets,SignalR会为您执行此操作并将回退到其他几个传输(永久帧,服务器发送事件,longpolling).
关于客户,如果您选择使用SignalR,则需要使用SignalR客户端.我们只支持javascript和.NET(silverlight,windows phone 8,winrt,.NET 4和.NET 4.5).有些人为其他平台编写了客户端,包括iOS和Android,但是我们没有维护它们,所以我不能说它们是如何更新的.
我建议你使用SignalR,这样你就可以专注于你的应用程序逻辑,而不是搞乱websockets的低级编程模型.
| 归档时间: |
|
| 查看次数: |
3439 次 |
| 最近记录: |