2012-10-10 44 views
6

SignalR çok mesaj kaybeder. Baytları istemcilere istemcilere nasıl aktarabilirim? I (ya da sunucu sunucudan istemciye veya istemciye) sunucudan istemciye istemciye bayt parçaları transfer ederken

Bir akışına dosyayı okumak ve bir hub veya diğer müşteriye kalıcı bağlantı üzerinden gönderdi. Bu çok hızlı çalışır, ancak her zaman mesajlar düştü veya kayboldu.

İletileri nasıl kaybetmeden müşteriden müşteriye büyük dosyaları (parçalar halinde veya değil) aktarabilir?

cevap

5

, bu iş için doğru teknoloji değil. Ne yapıyor öneriyoruz bağlantı bulunmasında indirilecek bir dosya oldugu bir mesaj göndererek ve ardından statik dosyalara veya ASP.NET WebAPI ile yazılmış bazı web hizmeti ya karşı standart GET istekleri kullanarak bu dosyayı indirebilirsiniz.

4

SignalR o mesaj göndermek için var, dosya aktarımı için değil. @dfowler işaret ettiği gibi

4

Neden doğru teknoloji değildir? Bir istemcinin bir sinyali bir sinyal göbeğine göndermesi gerekiyorsa, ilave malzeme gerektirmeden, sinyalR bağlantısı üzerinden geçebilmelidir. parçalarını aktarırken en azından benim için, bir bayt dizisi gönderirken sorunsuz çalışıyor Aslında

, ancak benzer sorunlar karşılaştı.

Belki sen parçalarını gönderme sırası alındıkları siparişle aynı olup olmadığını kontrol etmek için bazı testler yapabilir.

GÜNCELLEME bir testi kendim yaptım ve benim durumumda sipariş sorun gerçekten oldu. Sonra sonuna byte dizisini yeniden oluşturmak için kullandığı bir sipariş parametresini kabul edilmesi için parçaların alıcı göbek yöntemi Modifiye ve iyi çalışır. Bunu söyledikten sonra şimdi bunun büyük dosya aktarımlarıyla iyi çalışmadığını anladım. Verilerin çok büyük miktarlarda transfer etmek gerekmez Benim durumumda

, sadece veri parçalar halinde gönderilmesini zorunlu tutmaya, benim UI ilerlemenin bir göstergesidir istedi.

+0

bunun için bir örnek kod var mı? Parçaları nasıl aldın? Teşekkürler – user1331889