2015-11-13 14 views
5

Pracowałem nad projektem dla klienta i miałem dużo zabawy, integrując SignalR z systemem.Nieudane połączenia z klientami SignalR dla niektórych języków

Wszystko wydaje się działać naprawdę dobrze, a klient jest naprawdę podekscytowany tym, jak SignalR zapewnia rzeczywistą informację zwrotną w czasie rzeczywistym dla ich aplikacji.

W przeważającej części wszystko potoczyło się płynnie, jednak natknąłem się na dziwny problem, którego po prostu nie mogę określić.

Wszystko działa świetnie w następujących lokalizacjach:

  1. en-US
  2. en-GB
  3. to
  4. nl

jednak języki te po prostu nie dostać zwrotnego z piasta:

  1. fr
  2. de
  3. es
  4. en-ZW - Zimbabwe używamy angielskiego, aby sprawdzić wszystkie ciągi są tłumaczone.

mogę przejść przez kod aż do Clients.Client(ConnectionId).update(Result); (gdzie ConnectionId jest prawidłowy identyfikator połączenia, a wynik jest taki obiekt gotowy do odcinkach, z pierwszych czterech językach to idzie bezbłędnie i dostaję moją metodę JavaScript z oczekiwany wynik.

w ciągu ostatnich czterech językach jednak metoda jest zwolniony, ale nic nie przychodzi na drugą stronę. nic. ZIP.

Gdybym zastąpić plik programu Strings.fr.resx z domyślnym Strings.resx to moja strona działa zgodnie z oczekiwaniami, ale ponieważ plik Strings.en-ZW.resx jest identyczny z Strings.resx (tylko każdy ciąg jest zawijany w [()]) Wątpię, czy to jest problem. Próbowałem także używać fr locale z usuniętymi wszystkimi tłumaczeniami unicode (`, é, â etc), ale to nie pomogło.

Przeszukałem to już prawie cały dzień i nie znalazłem niczego, co by wskazywało na problem, a fakt, że en działa dobrze i en-ZW, nie wprowadza mnie w błąd.

Ktoś ma jakieś sugestie? Metoda

Hub:

public class ClientHub : Hub 
{ 
    [...] 

    protected void UpdateRecords(List<Int32> ChangedValues) 
    { 
     using (var database = new DbContext()) 
     { 
      foreach (Record R in database.Records.Where(Rc => ChangedValues.Contains(Rc.Id)) 
      { 
       SignalRFormattedRecord Serialized = new SignalRFormattedRecord(Record); 

       foreach (SavedFilter Filter in SavedFilters.ByRecord(Record)) 
       { 
        // Next line is always called. 
        Clients.Client(Filter.ConnectionId).updateRow(Serialized); 
       } 
      } 
     } 
    } 

    [...] 
} 

Javascript:

$.connection.clientHub.updateRow = function(value) { 
    debugger; 
    // update code works in all languages except FR, DE, ES and en-ZW. 
} 

$.connection.start(); 

Odpowiedz

2

Okazuje się, że system filtrowania nie był język agnostykiem, gdzie powinien być, a ja coraz fałszywych alarmów spowodowanych zwisające podczas połączenia odpluskwić.

Teraz czuję się całkiem głupio.

Powiązane problemy