C# 所以ASP.NET MVC和WebSocket?
我在MVC 3中有一个应用程序,我希望向它添加WebSocket(带有Comet的回退功能) 我做了一些研究,发现彗星部分非常简单,我更愿意自己做。处理这些长期存在的ajax请求只需要异步控制器和一点简单的js 现在,在WebSocket的例子中,事情开始变得肮脏。我看了一些库,但它们大多似乎设置了自己的web服务器(因此需要另一台主机或端口),并在那里侦听ws-protocol请求。例如,这是一个例子,一开始看起来不错,但有一个“我是一个web服务器”的问题(这当然很好,但我宁愿避免) 然后我看了“PingIt”之类的东西,我现在找不到链接了,不过我在另一台计算机上有这个源代码。这一个确实在mvc中的端点上运行,但我不太喜欢它处理事情的方式,比如它接受IDisposable对象,并通过reflector创建一个javascript片段,该片段在客户端中呈现,这与它们的库名称非常不符,我对此并不感兴趣,另外,我觉得很多内容都与我可能希望的内容背道而驰,这与我对页面应该如何呈现的看法背道而驰(特别是现在我正在使用MVC,这意味着我可以编写干净、不引人注目的html页面) 基本上,我希望我的端点是: domain.com/rt/cometC# 所以ASP.NET MVC和WebSocket?,c#,asp.net-mvc-3,iis,websocket,comet,C#,Asp.net Mvc 3,Iis,Websocket,Comet,我在MVC 3中有一个应用程序,我希望向它添加WebSocket(带有Comet的回退功能) 我做了一些研究,发现彗星部分非常简单,我更愿意自己做。处理这些长期存在的ajax请求只需要异步控制器和一点简单的js 现在,在WebSocket的例子中,事情开始变得肮脏。我看了一些库,但它们大多似乎设置了自己的web服务器(因此需要另一台主机或端口),并在那里侦听ws-protocol请求。例如,这是一个例子,一开始看起来不错,但有一个“我是一个web服务器”的问题(这当然很好,但我宁愿避免) 然后我
domain.com/rt/socket 而不是 domain.com/rt/comet
domain.com:81/ 那么:是否可以在asp.net MVC应用程序控制器中的端点上接收websocket连接(并进行握手和任何需要进行的操作),而不是在某处设置tcplistener 这也将帮助我使comet代码与websocket代码更接近 我应该说,我对comet/websockets这件事是非常陌生的,所以我对这个协议不太了解,我确实了解如何让comet工作,但对websockets不太了解,尽管我已经阅读并理解了一些基本知识来了解它的要点
另外:请让我知道我所问的是否太离题了,我只是想同意这些评论,并提供一些链接。信号员就是要走的路 网址:及 守则: Nuget:
安装软件包Microsoft.AspNet.signal-pre
良好的起点:
- 免费电子书
我非常感兴趣的是,在处理数千个持久连接时,IIS是如何扩展的——它是为Windows Server 8重新编写的吗?需要多久才能引入负载平衡器和横向扩展?如果这不是您感兴趣担心的问题,那么我会将。该API旨在通过单个TCP套接字在浏览器和服务器之间提供双向通信通道。它已经被IETF标准化,最新的Chrome、Firefox、IE和Opera浏览器都支持WebSocket。它旨在通过减少HTTP消息开销来最小化带宽开销。那么,有什么不喜欢的呢 就像任何被感知到的银弹一样,事情并不总是看起来的那样。存在许多问题: 浏览器支持:截至2012年6月,目前使用的浏览器中只有47.64%支持WebSocket,这意味着,无论WebSocket看起来有多好,您仍然需要第二个“后备”解决方案来支持大多数Internet用户。而且,由于大多数“后备”解决方案都涉及闪存,所以在iOS和其他移动设备上,您仍然运气不佳 从以下博客文章中了解更多关于WebSocket的真实信息: 浏览器支持更新:自5月起