在不同的客户端上调用函数SIlverlight

时间:2010-02-23 19:09:48

标签: silverlight

我有一个非常奇怪的问题。

有2个Silverlight客户端 1.管理员 2.用户

现在,我想要一个方案,其中Admin Silverlight可以在用户Silverlight上启动函数调用。

很多SL的新手很想知道这是否可能。

我很感激任何帮助。

谢谢

4 个答案:

答案 0 :(得分:1)

我认为应用程序不在同一浏览器/机器中,当您将使用模式描述为admin和user时,我认为用户可能比管理员多。

您可能需要查看WCF服务的双工绑定 - 这是一个Web服务绑定,允许从服务器向客户端推送通知。当所有客户端都建立这样的通道时,您可以在客户端之间实现中心辐射通信。

这篇博客文章为入门提供了一个很好的收据: http://silverlightforbusiness.net/2009/06/23/pushing-data-from-the-server-to-silverlight-3-using-a-duplex-wcf-service/

答案 1 :(得分:0)

如果它们都在同一帧/浏览器中,您可以使用HtmlPage API在第一个中调用JavaScript,这可以与第二个进行交互。

所以:

Silverlight控件 - >将JS注入HtmlPage - > JS与Silverlight控件2交互(假设这是可能的,如果错误请纠正我) - > Silverlight控件响应。

如果他们在单独的窗口中或“浏览器外”运行,我希望它不起作用。

答案 2 :(得分:0)

如果2个实例是分开的(即,管理员在一台机器上而用户在另一台机器上)则没有直接的方法。但是,您可以使用发布者/订阅者样式系统进行装配。

假设:您在两者之间存在某种共享数据存储,可能是数据库或其他东西。

想法:您有管理客户端向此共享数据存储写入请求;表中的条目,网络共享中的新文件或其他内容。您有用户客户端应用程序定期扫描此表/共享以获取新条目,例如每隔0.5秒左右。当它看到该条目时,它执行所请求的操作,将任何返回值存储回共享存储。当管理员看到返回值时,他知道操作已成功执行。

答案 3 :(得分:0)

我可以想到几个选项。

  • 您可以通过Web服务实现某种远程过程调用,其中一个Silverlight应用程序发布调用该方法的请求,另一个Silverlight定期检查方法调用请求。
  • 如果在浏览器中托管在同一HTML页面上,您可以使用javascript来允许两个控件进行交互。

但是,不支持两个Silverlight实例之间的直接通信,虽然这些建议可能有助于实现您想要的内容,但它们并不能提供适用于所有场景的完整解决方案。