【问题标题】:Using WebSockets in a C# Web Application?在 C# Web 应用程序中使用 WebSockets?
【发布时间】:2011-03-02 04:40:42
【问题描述】:

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

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

对于在没有多个服务器/项目的情况下在 C# Web 应用程序中包含 WebSocket 的方法有什么想法吗?

【问题讨论】:

标签: c# asp.net websocket


【解决方案1】:

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

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

因此,需要权衡取舍。这取决于您的客户端代码对连接丢失和重新建立的敏感程度。如果处理得当,那么在 ASP.NET 中托管就可以了。

请注意,虽然 WebSockets 对 HTML 来说是新事物,但这个概念在 Flash 和 Java Applet 中已经存在多年。尤其是 Flash,它通常用于在线游戏和基于网络的聊天。

【讨论】:

  • 谢谢,我想会是这样,我认为权衡是使用 ASP.Net 中的 Web 应用程序项目、C# 中的 WebSocket 服务器和 C# 库(包含所有模型)每个服务器项目都可以访问。我正在处理的项目实际上不需要在 2 个服务器项目之间共享数据,因为 2 个协议处理不同的数据路径。但是,将所有内容包含在 1 个项目中会更好!您是否有任何示例链接或有关在 ASP.Net 中使用 WebSockets 的任何内容?
  • @sixones,当托管在 ASP.NET 而不是 Windows 服务中时,实际实现确实没有区别。只需在应用程序初始化事件而不是服务OnStart 调用时对其进行初始化。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    PokeIn 2.0 内置 WebSocket 功能,不需要任何特殊环境即可工作。详情可咨询here

    【讨论】:

      【解决方案4】:

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

      见:http://www.asp.net/vnext/overview/aspnet/whats-new#_Toc318097383

      【讨论】:

        【解决方案5】:

        查看来自Kaazing.net client implementations。使用这些客户端,您可以连接到任何 websocket 服务器。

        【讨论】:

        • 我想知道服务器不是客户端实现,不过谢谢。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-10
        • 2015-05-15
        • 1970-01-01
        • 2011-01-29
        • 1970-01-01
        • 1970-01-01
        • 2012-05-27
        相关资源
        最近更新 更多