1

我正在使用 SignalR 2.0 测试版。在 Chrome、Firefox 和 IE10 中,我看到使用的传输始终是 longPolling。

http://localhost:8080/signalr/poll?transport=longPolling&connectionToken=123456

我正在从 Windows 服务运行集线器,并有 javascript 集线器代理作为客户端建立连接。

服务器端代码:

WebApp.Start<StartUp>("http://*:8080");

public class StartUp
{
    public void Configuration(IAppBuilder app)
    {
        var config = new HubConfiguration { EnableCrossDomain = true };
        app.MapHubs(config);
    }
}

客户端代码:

function configureMessaging() {

var connectionMain = $.hubConnection('http://localhost:8080');
connectionMain.stateChanged(connectionStateChanged);
connectionMain.start({ waitForPageLoad: false, xdomain: false, jsonp: false });

var vmgrHub = connectionMain.createHubProxy("vmgrHub");

$("#broadcast").click(function () {
    vmgrHub.invoke('globalMessage', $("#msg").val());
});

vmgrHub.on('addGlobalMessage', function (message) {
    $("#message").text(message);
}); }

在生产中,应用程序需要跨域支持,但在提供的示例中,Windows 服务和 javascript 客户端位于 localhost 上。

如何让 WebSockets 在支持它的浏览器中工作?

谢谢!

4

1 回答 1

2

来自SignalR 支持的平台

另请注意,要使 SignalR 使用 WebSockets,必须使用 IIS 8 或 IIS 8 Express,并且服务器必须使用 Windows 8、Windows Server 2012 或更高版本。

于 2013-07-17T13:18:00.080 回答