HubConnection'da, istemciden gelen url isteği aracılığıyla parametreleri iletmek için bir seçenek olduğunu görebiliyorum. JS veya .NET istemcilerinden gelen http üstbilgileri aracılığıyla belirli belirteci geçirmenin bir yolu var mı?Geçiş belirteci, http Başlıkları SignalR ile
cevap
Orada JS veya .NET istemcisi kullanarak SignalR istekleri için HTTP başlıklarını ayarlamak için kolay bir yoldur, ancak her SignalR isteğinin parçası olarak gönderilecektir sorgu dizesi parametreler ekleyebilir:
JS Müşteri
$.connection.hub.qs = { "token" : tokenValue };
$.connection.hub.start().done(function() { /* ... */ });
NET Müşteri
var connection = new HubConnection("http://foo/",
new Dictionary<string, string>
{
{ "token", tokenValue }
});
Hub İçerisinde Bağlamında yoluyla topluluk adını erişebilirsiniz: yanı kalıcı bağlantılar yaparken
Context.QueryString["token"]
Sorgu dizesine ekleyebilir.
DÜZENLEME: Artık .NET SignalR istemcisindeki üstbilgileri, bazı yorumcular tarafından belirtildiği gibi ayarlamak mümkündür. .NET Client üzerinde
Ayar Başlıkları
var connection = new HubConnection("http://foo/");
connection.Headers.Add("token", tokenValue);
:
var connection = new Connection("http://signalr/");
connection.Headers.Add("custom-header", "value");
Sunucu tarafında, örneğin IRequest'ten başlık değerini alabilirsiniz. OnConnected:
var header = request.Headers["custom-header"];
Ancak henüz JS istemcisi ile bunu yapmanın bir yolunu bulamadı ($ bağlantısı nesne üzerinde hiçbir başlıklarını veya addHeaders yoktur). http://forums.asp.net/t/1910020.aspx/1?Add+custom+HTTP+header+on+client+side+connect+call+SignalR+1+1+1+
EDIT:
Bu işte bir soru gönderdiniz başlıkları (tarayıcıda) WebSocket istemcisi beri maruz kalmaması bu özelliği desteklemiyorsa (yani taşıma genelinde uygulamak mümkün olmazdı) . Yukarıdaki gönderide David Fowlers yanıtını görün.
Bu bilgileri,numaralı IConnected.Connect()
yönteminde bulunan bilgilerime ekleyerek çözdüm.
$.connection.hub.qs = "myInfo=12345";
Daha sonra sunucu üzerinde bu bilgilere erişebilir: .NET Ýstemcide
Bağlantıyı başlamadan önce qs özelliğini ayarlayın JS Ýstemcidequerystring into your HubConnection:
var connection = new HubConnection("http://localhost:8080/", "myInfo=12345");
geçmesi Connect() yönteminde:
var myInfo = Context.QueryString["myInfo"];
Groups.Add(Context.ConnectionId, myInfo);
Akıllı numara. Şimdi hayatımı kurtardın. teşekkür ederim – Jacob
- 1. HTTP Başlıkları
- 2. HTTP yönlendirmelerde başlıkları yaymayın
- 3. seti HTTP başlıkları
- 4. Açısal JS - $ http başlıkları göndermiyor
- 5. Küresel olarak ayarlanmış $ http başlıkları
- 6. window.open başlıkları ile
- 7. Wiris http ile https arasında geçiş yapma
- 8. SignalR Sunucu Hatası "ConnectionId yanlış biçimdedir." SignalR-ObjC Library ile
- 9. Başlıkları
- 10. ServiceStack ile İstek Başlıkları İncele
- 11. SignalR, Suave ile nasıl çalışır?
- 12. Çapraz etki alanı, signalr 2.0 ile çalışmaz
- 13. başlıkları tepki
- 14. ServiceStack.Text'i, SignalR
- 15. SignalR 2.1.0: Bağlantı kurulmadı
- 16. SignalR Security
- 17. SignalR - WebSockets
- 18. SignalR farkı
- 19. VBA HTTP İletim İsteğinde Geçiş Parametreleri
- 20. Windows Azure Service Bus ile Ölçeklendirme SignalR
- 21. Bir projeyi SignalR ile derlerken, bir iisreset
- 22. Önlemek istenmeyen başlıkları ServiceStack
- 23. SignalR with vNext
- 24. CORS Başlıkları Ayarlanmıyor
- 25. neden SignalR uygulaması bazen böyle bir signalR göbeğine bağlıyorum bağlantısız
- 26. jqGrid sütunu, sütun başlıkları ile hizalanmamış
- 27. SignalR veya NodeJS/Socket.IO?
- 28. Etki alanları arasında SignalR
- 29. CSRF belirteci
- 30. C# ile geçiş String.IsNullOrEmpty
Teşekkürler!Evet, o zaman bağlantı için ek paramları geçmek için tek yol gibi görünüyor. –
SignalR 1.1.0beta'nın en son sürümü ayar başlıklarını destekliyor. En son paketleri NuGet'ten alabilirsiniz. –
Başlığın nasıl ayarlanacağına dair bir belge bulamıyorum. Beni bir yöne yönlendirebilir misin? –