我正在try 让WebSockets在我的开发环境中工作:

  • Visual Studio 2010
  • Windows 7
  • 信号R0.51
  • 最新Chrome/Firefox

不幸的是,Javscript客户端使用的是长轮询.当我在客户端强制使用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?

推荐答案

根据这个答案https://stackoverflow.com/a/9135334/700926,你会发现SignalR中的WebSocket支持依赖于Windows8/IIS8--答案还指向SignalR的GitHub页面上的一个维基页面,但是,这个页面已经不存在了.

但是,通过在GitHub克隆wiki repo并返回一些修订,你会看到SignalR.WebSockets项目的文档,根据SignalR的GitHub页面,这些文档已经不存在了-(这可能解释了为什么wiki网站被删除)-然而,在今年2月开始的SignalR.WebSockets版Wikipage中,它声明:

百人组 可以将包添加到现有SignalR项目以允许客户端 使用WebSocket protocol进行连接.SignalR jQuery客户端将自动try 通过WebSockets(如果 浏览器支持它),因此不需要对客户端进行任何更改 将WebSocket添加到基于SignalR的应用程序.

信号员.WebSocket依赖于

我try 过搜索比我在上面所能提供的更新的信息,但据我所知,SignalR wiki在其当前版本中没有明确涵盖这个主题.

Asp.net相关问答推荐

在具有多个项目(API/服务/数据等)的解决方案中编写 SignalR 服务的最佳方法是什么?

C# - 将 xyz 平铺转换为纬度/经度,反之亦然,给出不同的结果

在 Web.Config 中模拟标签

ASP.NET - 在屏幕底部显示应用程序构建日期/信息

是否可以在没有那些 .svn 文件夹的情况下从 subversion 签出文件?

asp.net:与其中的用户控件相比,控件/页面的页面生命周期顺序是什么?

下载功能在 asp.net 的更新面板中不起作用

配置转换和TransformXml 任务失败错误消息

从 JavaScript 读取 web.config

在 ASP.NET Core 1.0 上处理大文件上传

为什么aspx文件会返回404(找不到页面)

如何在 ASP.NET 页面中以编程方式生成 401 错误

如何获取正在访问 ASP.NET 应用程序的当前用户?

IIS Express 安装目录在哪里?

如何获取当前登录用户的角色列表

如何验证 WebClient 请求?

哪个控件导致了回发?

Sys.WebForms.PageRequestManagerServerErrorException:处理服务器上的请求时发生未知错误.

在没有等待 #2 的情况下调用异步方法

如何在asp.net的GridView中按列名而不是按索引获取单元格值