【发布时间】:2013-05-25 07:04:54
【问题描述】:
在我的 ASP.NET MVC 应用程序中,用户单击 UI 上的按钮拨打电话。 ajax 请求发送到 MVC 应用程序,该应用程序调用电话拨号器 - 库中调用外部组件进行呼叫的方法。
如果已拨电话被呼叫的接收者终止,电话拨号器组件会通过调用其自己的类中的事件处理程序来引发事件。
我想将该事件传播到客户端,以便它可以更新其 UI。
我无法使用的选项
我查看了 JavaScript 服务器发送的事件。但是,它们与我的情况不同,在 JavaScript 服务器发送的事件中,会发生以下情况:
1) 客户端在新的套接字上向服务器发起连接。关键区别在于,客户端启动连接。
2) 连接一直保持活动状态,直到服务器或客户端想要终止它。
3) 从建立连接到客户端或服务器想要终止连接并且不再交换通知,服务器必须始终处于活动状态。这意味着每个客户端都使用一个新的套接字连接和一个新的工作线程来服务通知交换。
如果我使用服务器发送的事件,我将不得不创建一个保持活动状态的服务器。这意味着我必须在控制器上执行新操作,并在开始时调用相应的视图并保持活动状态,直到收到有关呼叫挂断的通知。
这不仅很昂贵,而且对我的设计也有反直觉,因为我不想仅仅为了监听事件而被重定向到新视图。
还有其他选择吗?
【问题讨论】:
-
你知道
WebSocket,对吧?要与 ASP.NET 集成,您可以使用 SignalR -
谢谢。是的,我有。我相信使服务器发送事件成为可能的 JavaScript 的
EventSource对象使用WebSockets。我会再仔细研究一下。谢谢。
标签: javascript jquery asp.net asp.net-mvc asp.net-mvc-4