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:
- en-US
- en-GB
- to
- nl
jednak języki te po prostu nie dostać zwrotnego z piasta:
- fr
- de
- es
- 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();