在C#Web应用程序中使用WebSockets?

我知道可以使用在Web应用程序旁边运行的控制台应用程序在C#中使用WebSockets,但我想知道是否可以使用C#Web应用程序上的请求来创建WebSockets。

我一直在寻找ASP.Net,我开始认为它不可能,除非我直接使用C#并创建我自己的HTTP服务器,然后使用相同的套接字对象生成Web套接字(类似于Node.js和Socket.IO工作)。

有关如何在没有多个服务器/项目的情况下将WebSockets包含在C#Web应用程序中的任何想法?

可以在ASP.NET的上下文中托管WebSockets服务器。 但是,您需要知道ASP.NET应用程序可以重新启动,这意味着服务器将被关闭,并且需要与ASP.NET应用程序一起重新建立。

在单独的Windows服务中托管WebSockets应用程序将在套接字服务器中提供更高的可靠性,但随后将要求IPC在ASP.NET应用程序和Windows服务之间共享数据。

所以,需要进行权衡讨论。 这取决于客户端代码对连接丢失和重建的敏感程度。 如果这个处理得足够好,那么在ASP.NET中托管就可以了。

请注意,虽然WebSockets是HTML的新手,但这个概念已经存在多年,使用Flash和Java Applet。 特别是Flash,它通常用于在线游戏和基于网络的聊天。

SuperWebSocket的源代码包含一个在网站中运行套接字服务器的Web项目。 http://superwebsocket.codeplex.com/

PokeIn 2.0内置了WebSocketfunction,无需任何特殊环境即可工作。 详情可从此处获得

在asp.net 4.5和IIS8 中将内置支持websockets客户端和服务器。

请参阅: http : //www.asp.net/vnext/overview/aspnet/whats-new#_Toc318097383

查看Kaazing的.net客户端实现 。 使用这些客户端,您可以连接到任何websocket服务器。