Как я могу отправить данные с хоста WCF на подключенного клиента? - PullRequest
0 голосов
/ 25 февраля 2011

Я хочу отправить данные с хоста WCF (не прокси-сервера службы) на подключенный клиент со службой. Как мне этого добиться?

1 Ответ

3 голосов
/ 25 февраля 2011

Вам нужно будет создать службу Duplex . См. Эту статью для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/ms731064.aspx

Вот пример:

[ServiceContract(
    SessionMode=SessionMode.Required,
    CallbackContract=typeof(INotificationServiceCallback))]
public interface INotificationService
{
    [OperationContract(IsOneWay = true)]
    void Connect();
}

public interface INotificationServiceCallback
{
    [OperationContract(IsOneWay = true)]
    void SendNotification(string notification);
}

public class NotificationService : INotificationService
{
    public static List<INotificationServiceCallback> Clients = 
        new List<INotificationServiceCallback>();

    public void Connect()
    {
        Clients.Add(
            OperationContext.Current.GetCallbackChannel<ICalculatorDuplexCallback>());
    }
}

public class Notifier
{
    void HandleReceivedNotification(string notification)
    {
        foreach (var client in NotificationService.Clients)
        {
            client.SendNotification(notification);
        }
    }
}
...