SignalR总是使用longpolling

时间:2013-07-17 12:38:05

标签: c# websocket signalr long-polling

我正在使用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在支持它的浏览器中工作?

谢谢!

1 个答案:

答案 0 :(得分:2)

来自SignalR Supported Platforms

  

另请注意,SignalR要使用WebSockets,IIS 8或IIS 8 Express   必须使用,服务器必须使用Windows 8,Windows Server   2012年或之后。