Передача данных в обратный вызов, гарантированно ли получены данные? - PullRequest
1 голос
/ 22 сентября 2010

мой вопрос: наличие такого кода (связь через контракт обратного вызова)

private void BroadcastMessage(DataEventArgs e)
{
    DataEventHandler temp = DataEvent;

    if (temp != null)
    {
        foreach (DataEventHandler handler in temp.GetInvocationList())
        {
            handler.BeginInvoke(this, e, EndAsync, null);
        }
    }
}

и контракт обратного вызова

interface IDataCallback
{
    [OperationContract(IsOneWay = true)]
    void EntityUpdateReceived(Entity entity);

    [OperationContract(IsOneWay = true)]
    void EntitiesUpdateReceived(List<Entity> entities);

    [OperationContract(IsOneWay = true)]
    void EntityDeleteReceived(Entity entity);

    [OperationContract(IsOneWay = true)]
    void EntitiesDeleteReceived(List<Entity> entities);

    [OperationContract(IsOneWay = true)]
    void SendLogOffMessage(string message);

    [OperationContract(IsOneWay = true)]
    void Logoff();

    [OperationContract(IsOneWay = true)]
    void UpdatePlan(int userId);
}

Есть ли у меня уверенность в том, что сообщениебудет успешно транслироваться всем клиентам, даже если на пути были, скажем, проблемы с сетью ??Я имею в виду, пытается ли служба автоматически доставлять сообщение раз за разом, пока оно не преуспеет, при условии, что клиент все время подключен, но при первой доставке возникли проблемы.Я спрашиваю, потому что я не знаю, нужно ли мне писать дополнительный код, чтобы гарантировать его (сообщения подтверждения клиента службы и т. Д.) У меня включен надежный сеанс в app.config, решает ли надежный сеанс проблему ??

Заранее спасибо за ответ

1 Ответ

3 голосов
/ 22 сентября 2010

Это зависит от привязки и конфигурации (более подробную информацию см. Здесь ).И даже в этом случае надежность недолговечна.

Если вам нужно что-то надежное и , вы, возможно, захотите посмотреть на транзакционные очереди, например, через MSMQ (хотя многочисленные технологии очередейимеется в наличии).Возможно, вы даже захотите провести синхронную публикацию в очереди, поскольку ожидаете, что она будет доступна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...