Можете ли вы отправлять данные клиентам из службы WCF без необходимости вызова этой службы? - PullRequest
3 голосов
/ 10 декабря 2011

Скажем, я хочу написать одноранговое приложение для чата. И я использую службу WCF в качестве сервера, на который клиенты «входят», чтобы они могли находить IP-адреса и порты друг друга.

Ну, скажем также, у меня есть текстовое поле в моем клиентском приложении, которое отображает всех пользователей, которые в сети. Каждый раз, когда пользователи входят или выходят из системы, я хочу обновить это текстовое поле «Кто в сети», чтобы отображались только пользователи, которые в данный момент находятся в сети.

Таким образом, сервер должен отправлять информацию всем клиентам, когда пользователь входит в систему или выходит из нее. Но, похоже, WCF может отправлять данные только при ответе на запросы ....

Я что-то здесь упускаю, может ли WCF справиться с этой ситуацией?

Ответы [ 2 ]

2 голосов
/ 10 декабря 2011

Существует несколько подходов к этой проблеме, вероятно, они будут наиболее распространенными:

  1. Используйте публикацию / подписку, как в этой хорошей статье .
  2. Храните всех зарегистрированных в данный момент пользователей в хранилище - в базе данных или в любом другом месте и запрашивайте его со стороны пользователей.
2 голосов
/ 10 декабря 2011

Я думаю, вам нужен дуплексный сервис.

...