【问题标题】:Using WebSocket on Windows 7在 Windows 7 上使用 WebSocket
【发布时间】:2012-06-17 20:39:02
【问题描述】:

我刚刚安装了 Visual Studio 2012 RC 并尝试使用启用 WebSocket 的 netHttpBinding 运行服务并得到以下错误:

此平台不支持服务器端 WebSockets。

我运行的样本来自http://blogs.microsoft.co.il/blogs/idof/archive/2012/03/01/what-s-new-in-wcf-4-5-websocket-support-part-1-of-2.aspx

WebSockets 可以在带有 Visual Studio 2012 RC 的 Windows 7 上工作吗?

【问题讨论】:

    标签: websocket .net-4.5


    【解决方案1】:

    不,websockets 仅受 Windows 8 中的 Windows 原生支持,无论您使用的是哪个 Visual Studio 版本。

    http://www.paulbatum.com/2011/09/getting-started-with-websockets-in.html

    这是由于 Windows 7 中带有 http.sys 的一些低级问题。

    它可能会被向后移植,但似乎不太可能:http://weblogs.asp.net/owscott/archive/2012/03/01/what-s-new-in-iis-8.aspx

    要在 Windows 7 上使用 websocket,您必须编写自己的服务。

    尝试将其用于客户端:http://websocket4net.codeplex.com/

    服务器端的这个:http://superwebsocket.codeplex.com/

    【讨论】:

    • 我误认为 websocket4net 是用于客户端实现的吗? SuperWebSocket 不是在服务器端接受连接所需要的吗? IDK,我可能错了,但这是基于您链接到的页面上的描述。
    • 非常正确,谢谢 - 已编辑以包含指向该项目服务器端部分的链接。
    【解决方案2】:

    我遇到了同样的问题并使用Fleck 解决了它。实现起来非常简单:

    一个。 NuGet 添加 Fleck 引用

    两个。创建您的网络服务器套接字

    // Create Websocket server
    websocketServer = new Fleck.WebSocketServer("ws://localhost:82");
    websocketServer.Start(socket =>
    {
        socket.OnOpen = () => Console.WriteLine("Open!");
        socket.OnClose = () => Console.WriteLine("Close!");
        socket.OnMessage = message => socket.Send(message);
    });
    

    我现在在一个端口上有一个 ASP.NET Self Host Web API,并且 websockets 连接在它旁边运行。

    【讨论】:

    • 这很有趣,只是强调 Fleck 是服务器端实现,而不是客户端。
    猜你喜欢
    • 2018-06-09
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    相关资源
    最近更新 更多