我制作了一个简单的聊天应用。我对SignalR印象深刻。
我的问题是,这项技术是否能让我们调用asp.net服务器端方法(例如aspx.cs后端的方法)?
让我解释一下我在说什么。我有一个WCF服务,它从数据库中检索数据并将其发送到客户端。在客户端,有一个方法getCars(),它在page_Load上调用,并向用户显示所有汽车。
但是,例如,如果其他客户端更改汽车并将更改发送到WCF服务,则服务会将新数据更新到数据库。那么是否可以选择将这些更改显示给使用SignalR的其他人..
与正常的SignalR一样,sendMessage正常工作..某些客户端向服务器发送消息,服务器向所有客户端添加消息,对于具有signalR的所有客户端,是否有可能与ASP.NET方法相同(当一个客户端调用数据库再次为所有客户端调用该方法)?
我听说这是通过使用WCF的Duplex完成的,但我对SignalR可以使用感兴趣吗?
答案 0 :(得分:0)
是的,您可以,因为您使用的是JavaScript客户端,当客户端进行更改时,您可以调用服务器
commandHubProxy.invoke('InformClients').done(function (result) {
//Call Succeeded
}).fail(function (error) {
//log error
});
在服务器上,该方法通知其余客户端
public void InformClients(string text)
{
Clients.Others.DataUpdated();
}
然后在其他客户端上,您可以执行Ajax请求来刷新数据
commandHubProxy.on('DataUpdated', function () {
//Refresh the data or inform the user
});