0

这个问题似乎是菜鸟,但我一直在谷歌搜索,也在这个论坛上,我找不到我正在寻找的东西。

我在控制器中有一个SonimMQ对象处于侦听模式,因此当我收到一条或多条消息时,我会解析它们并希望将它们发送到我的视图(可以是实时更新的网格或图表)。有没有办法在没有客户端请求的情况下将数据从控制器事件(在这种情况下是_OnReceiveData SonicMQ 事件)发送到视图?

我知道我可以用 jQuery ( setTimeout ) 实现一个 Timer 来从 Controller 中提取数据,但我只想知道是否有另一种方法来实现它。

我也读过jQuery .Controller但它似乎只适用于鼠标和键盘事件,而不适用于“控制器事件”。

我在这里找到的最接近的答案是这个,但它使用 jQuery setTimeout。

也许这是一个范式问题,因为我是一名桌面应用程序开发人员,我正试图像在桌面应用程序模型中一样解决这个问题。我刚刚开始进行网络开发。所以,如果这个问题如此明显,请原谅。

我很感激任何帮助。谢谢!

4

2 回答 2

3

我认为您在使用网络套接字。请看这个链接 所以... ASP.NET MVC 和 WebSockets?

SignalR 看起来是目前最好的选择。

于 2013-07-22T17:57:41.260 回答
2

我会说简短的回答是否定的,但我需要更多关于这个问题的背景信息。

你能分享一些代码吗?

我猜 SonimMQ 是长时间运行的服务,在这种情况下是消息队列。

控制器的寿命不会超过请求(通常一次几秒钟)。每个请求都与另一个请求隔离(在大多数情况下,有一些方法可以跨请求共享数据)

如果您正在寻找一个长时间运行的进程,您可以使用服务,例如 Windows 服务。这有点 hacky,但您可以使用 HttpCache API 并设置超时。

对于桌面开发人员过渡到 Web 的最困难的概念是 Web 的无状态性。在桌面世界中,您可以根据事件存储状态和触发操作。在网络世界中,情况并非如此。在很多方面,它是网络之美,但它也是网络的诅咒,因为最终我们想要网络上的桌面体验。

于 2013-07-22T17:47:38.130 回答