2013-07-13 47 views
1

已经开始使用SignalR。希望澄清一些关于SignalR如何实现广播的疑问,基本上服务器如何启动通信?SignalR如何广播消息?

1>当我们为一个让请求说.aspx页面中正常情况下,服务器呈现页面并返回效应初探返回给客户端和东西做

但是SignalR如何能够不间断的能在ASP.net网站上提供Ticker演示的情况下,在Background/Async中执行。

我google了一点,发现IRegisteredObject是需要执行的对象持续需要注册HostingEnvironment的方式之一,但为了类必须实现IRegisteredObject接口,但在股票演示的情况下没有任何该类实现IRegisteredObject接口。

我在这里找点什么,或者SignalR使用完全不同的技术?

回答

3

SignalR利用4个传输来处理来自服务器的数据。一次只能使用一个传输器,但SignalR有4个传输器来确保各种设备/浏览器上的服务器/客户端通信。这里的传输和短技术说明:

  1. 长轮询,接收数据,它使用一个Ajax请求,其响应不会被释放,直到有可用的数据在服务器上,一旦服务器返回数据的扶住响应客户端然后创建另一个请求并等待下一批数据。要发送数据,它会创建第二个Ajax请求。
  2. Forever Frame,使用iframe通过它将服务器按下javascript文本然后在iframe中执行,iframe然后将执行传播到父页面,然后处理数据。发送数据SignalR使用ajax请求。
  3. Server Sent Events使用EventSource对象。几乎所有的IE都支持。 EventSource对象打开一个单向管道,服务器可以通过该管道将数据泵入,从而允许客户端实时接收数据。发送数据SignalR使用ajax请求。
  4. Web套接字使用内置的浏览器WebSocket对象,该对象打开单个双向通道,通过该通道可以接收和发送数据。

这就是SignalR每个运输的精髓,您可以看到David Fowler和Damian Edwards创建精简版SignalR here的小时演示。它基本上强调了SignalR如何在覆盖范围内工作。

+0

谢谢你的回复,我知道SignalR使用的差分传输。我的疑问是,SignalR如何在服务器上连续运行,基本上像一个schedular。 SignalR是否会在AppDomain中用完,就像我在上面的帖子中解释过的IRegisteredObject一样。在这种情况下,他们不需要从客户端获得激活处理的请求(更新股票价格)。我看到了David Fowler Lite版本,但更多的关于集线器和客户端如何通信,以及我的查询是如何SignalR持续处理,即使没有来自客户端的请求? –