我正在使用SignalR 2.0測試版。從Chrome,Firefox和IE10我看到使用的傳輸始終是longPolling。SignalR始終使用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客戶端都在本地主機上。
如何讓WebSockets在支持它的瀏覽器中工作?
謝謝!
是您的應用程序託管在Windows Server 2012或Windows 8? – MEYWD
[SignalR w/Web Sockets]的可能重複(http://stackoverflow.com/questions/11601561/signalr-w-web-sockets) – MEYWD
Windows Service在Windows 2008 R2中運行。這也是我的開發環境。 – ISZ