2012-04-03 32 views
13

'u nasıl devre dışı bırakırım .NET 4.5'e yükseltildim, şimdi sadece Web 7'leri bir WebSocket Sunucusu olmayan Windows 7'yeysem de, Firefox/Chrome'daki WebSockets'ları kullanmakta ısrarlı görünüyor.SignalR - WebSockets

Firefox can't establish a connection to the server at ws://www.site.local/signalr?connectionData= 

nasıl Websockets unutup Uzun Çağırma'yı kullanmak SignalR zorlamak, veya ben kaçırıyorum Windows 7 için WebSockets kurma bir yolu vardır:

isteği açıkça başarısız?

Güncelleme .... ben SignalR 0.4 kullanıyorum:

<package id="SignalR" version="0.4.0" /> 
    <package id="SignalR.Hosting.AspNet" version="0.4.0.0" /> 
    <package id="SignalR.Js" version="0.4.0.1" /> 
    <package id="SignalR.Server" version="0.4.0.0" /> 
    <package id="SignalR.StructureMap" version="0.4.1" /> 

cevap

25

Cevabı burada buldum:

https://github.com/SignalR/SignalR/wiki/SignalR-JS-Client

Temelde

:

$.connection.hubs.start({ transport: 'longPolling' }, function() { 
    console.log('connection started!'); 
}); 
+1

SignalR 0.4'e güncelleştirin ve yalnızca sunucu destekliyorsa websockets'ı dener. – davidfowl

+0

SignalR 0.4 kullanıyorum (bkz. Yukarıdaki güncellemeye bakın) – reach4thelasers

+0

Eğer NETFramework 4.5 üzerinde çalışıyorsanız, şu anda bunu tespit etmenin iyi bir yolu olmadığı için websockets kullanmaya çalışın. – davidfowl

8

amacıyla için Sunucu tarafında bir aktarımı devre dışı bırakmak için, aşağıdaki gibi bir şey kullanmalısınız:

using Microsoft.AspNet.SignalR; 
using Microsoft.AspNet.SignalR.Transports; 
using Owin; 
namespace MyApplication 
{ 
    public static class Startup 
    { 
     public static void ConfigureSignalR(IAppBuilder app) 
     { 
      // If using the global dependency resolver 
      TurnOfForeverFrame(GlobalHost.DependencyResolver); 
      app.MapSignalR(); 
     } 
     public static void TurnOfForeverFrame(IDependencyResolver resolver) 
     { 
      var transportManager = resolver.Resolve<ITransportManager>() as TransportManager; 
      transportManager.Remove("foreverFrame"); 
     } 
    } 
} 

@ reach4thelasers' çözüm sadece istemci devre dışı, ancak istemci taşıma yeniden etkinleştirmek ve bağlanabilir.

Şerefe.