gpt4 book ai didi

c# - 带有 Web 套接字的 SignalR

转载 作者:IT王子 更新时间:2023-10-29 04:11:55 26 4
gpt4 key购买 nike

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

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

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

$.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 上工作?

最佳答案

即使在 Windows 8/.NET 4.5 上,它最初也无法正常工作,但有了这些额外的提示,我终于让它正常工作了。

  • 安装 websocket 支持

    -> Turn Windows features on or off
    -> Internet Information Services
    -> World Wide Web Services
    -> Application Development Features
    -> WebSocket Protocol
  • 在 web.config 中的 appSettings 下,添加此设置:

    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />

SignalR 自动协商 websockets,无需指定,代码中不需要任何特殊内容。

关于c# - 带有 Web 套接字的 SignalR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11601561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com