Вызов функции на другом клиенте SIlverlight - PullRequest
1 голос
/ 23 февраля 2010

У меня один очень странный вопрос.

Есть 2 клиента Silverlight 1. Админ 2. Пользователь

Теперь я хочу сценарий, в котором Admin Silverlight может инициировать вызов функции в User Silverlight.

Практически новичок в SL, поэтому удивляйтесь, возможно ли это.

Буду признателен за любую помощь.

Спасибо

Ответы [ 4 ]

1 голос
/ 23 февраля 2010

Я полагаю, что приложения не находятся в одном браузере / машине, и когда вы описываете схему использования как администратор и пользователь, я предполагаю, что пользователей, вероятно, больше, чем администраторов.

Возможно, вы захотите взглянуть на дуплексные привязки для служб WCF - это привязка веб-службы, которая позволяет отправлять уведомления клиентам с сервера. Когда все клиенты устанавливают такой канал, вы можете осуществлять межсетевое взаимодействие между клиентами.

Это сообщение в блоге дает хорошую квитанцию ​​для начала: http://silverlightforbusiness.net/2009/06/23/pushing-data-from-the-server-to-silverlight-3-using-a-duplex-wcf-service/

0 голосов
/ 23 февраля 2010

Если два экземпляра разделены (то есть администратор находится на одном компьютере, а пользователь на другом), прямого способа сделать это нет. Тем не менее, вы можете подключить его к системе издателя / подписчика.

Предположение: у вас есть какое-то общее хранилище данных между ними, может быть, база данных или что-то еще.

Идея: у вас есть клиент администратора, чтобы написать запрос в это общее хранилище данных; запись в таблице, или новый файл в сетевой папке, или что-то еще. У вас есть пользовательское клиентское приложение, регулярно сканирующее эту таблицу / общий ресурс на наличие новых записей, скажем, каждые 0,5 секунды или около того. Когда он видит запись, он выполняет запрошенную операцию, сохраняя все возвращаемые значения обратно в общее хранилище. Когда администратор видит возвращаемое значение, он знает, что операция была успешно выполнена.

0 голосов
/ 23 февраля 2010

Есть несколько вариантов, о которых я могу подумать.

  • Вы можете реализовать своего рода удаленный вызов процедур через веб-службы, при котором одно приложение Silverlight отправляет запрос на вызов метода, а другое Silverlight регулярно проверяет запросы вызова метода.
  • Если вы размещены на одной и той же HTML-странице в браузере, вы можете использовать javascript для взаимодействия двух элементов управления.

Однако прямая связь между двумя экземплярами Silverlight не поддерживается, и хотя предложения могут помочь достичь чего-то, близкого к тому, что вы хотите, они не предоставляют полного решения, которое будет работать во всех сценариях.

0 голосов
/ 23 февраля 2010

Если они оба находятся в одном фрейме / браузере, вы могли бы сначала вызвать JavaScript с помощью HtmlPage API, который может взаимодействовать со вторым.

Итак:

Элемент управления Silverlight -> внедряет JS в HtmlPage -> JS взаимодействует с элементом управления Silverlight 2 (если это возможно, пожалуйста, исправьте меня, если не так) -> Элемент управления Silverlight отвечает.

Если они находятся в отдельных окнах или работают "вне браузера", я ожидаю, что это не сработает.

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