Несколько клиентских IPC в .Net - PullRequest
0 голосов
/ 24 июля 2010

У меня есть серверный процесс, связанный с портом, который принимает сетевые пакеты с практически случайными интервалами.Когда пакет принят, он анализируется, и создается объект, представляющий данные этого пакета.Я хотел бы иметь возможность «протолкнуть» этот объект данных на любое число, 0..n, клиентские процессы, работающие на той же машине.Клиенты всегда будут на локальном хосте.

Клиентский процесс интересуется только объектами данных, созданными и выдвинутыми сервером с момента его запуска.Это также односторонний поток информации.Клиентам не нужно взаимодействовать с сервером, им просто нужно получать новые объекты данных с сервера.

Серверный и клиентский процессы написаны на C # с использованием .Net framework.

Учитывая эту настройку, какой метод IPC вы бы использовали, чтобы заставить это работать?Мой текущий план состоит в том, чтобы сериализовать объект данных и записать его в именованный канал, из которого клиенты читают.Это путь?Также стоит отметить, что скорость не является критическим фактором.

1 Ответ

1 голос
/ 31 июля 2010

Я решил это с помощью обратных вызовов WCF.Клиенты «подписываются» на сервер, затем сервер выполняет итерацию по подписанным обратным вызовам и вызывает их с данными, которые должны быть отправлены.Когда клиентский процесс завершается, он выдает отказ от подписки.

В сети есть множество примеров этого, за которыми довольно легко следить.Для всех, кто заинтересован, эти ссылки могут помочь.

http://msdn.microsoft.com/en-us/magazine/cc163537.aspx

http://dotnetaddict.dotnetdevelopersjournal.com/wcf_alarmclock.htm

http://idunno.org/archive/2008/05/29/wcf-callbacks-a-beginners-guide.aspx

...