SignalR与Web套接字

问题描述 投票:29回答:4

我试图让websockets在我的开发环境中工作:

  • Visual Studio 2010
  • Windows 7的
  • 信号R 0.51
  • 最新的Chrome / Firefox

不幸的是,Javascript客户端正在使用长轮询。当我在客户端强制使用Web套接字时,我根本无法连接:

$.connection.hub.start({ transport: ['webSockets'] })

服务器代码是自托管的,基于示例,如下所示:

static void Main(string[] args)
{
    string url = "http://localhost:8081/";
    var server = new Server(url);

    // Map the default hub url (/signalr)
    server.MapHubs();

    // Start the server
    server.Start();

    Console.WriteLine("Server running on {0}", url);

    // Keep going until somebody hits 'x'
    while (true)
    {
        ConsoleKeyInfo ki = Console.ReadKey(true);
        if (ki.Key == ConsoleKey.X)
        {
            break;
        }
    }
}

public class MyHub : Hub
{            
    public void Send(string message)
    {
        Clients.addMessage(message);
    }
}

我四处搜寻,没有发现任何确定性。我是否需要指定一些额外的东西,使用Visual Studio 2012或者这只适用于Windows 8 / IIS 8?

c# asp.net signalr
4个回答
0
投票

除了解决SignalR中WebSockets问题的上述解决方案之外,如果您在公司网络内(或类似结构的东西),您的代理和防火墙可能会干扰握手。

但是,如果您通过SSL访问它,它提供的包装器在许多情况下可以保护它免受这种干扰。

© www.soinside.com 2019 - 2024. All rights reserved.