
要从客户端调用服务器方法,如果未使用生成的代理,请使用生成的代理的服务器属性或集线器代理上的invoke方法. 返回值可以是一个复杂的对象.
在Hub上传递的方法名称的驼色版本. SignalR自动进行此更改js 调用客户端软件js 调用客户端软件,以便JavaScript代码可以符合JavaScript约定.

下面的示例演示如何调用不具有返回值的服务器方法,以及如何调用具有返回值的服务器方法.
服务器上的代码如下:

public class ContosoChatHub : Hub
{
public void NewContosoChatMessage(ChatMessage message)
{
Clients.All.addContosoChatMessageToPage(message);
}
}
定义服务器上传入对象的原型

public class ChatMessage { public string UserName { get; set; } public string Message { get; set; } }
使用代理来调用服务器方法

contosoChatHubProxy.server.newContosoChatMessage({ UserName: userName, Message: message}).done(function () {
console.log ('Invocation of NewContosoChatMessage succeeded');
}).fail(function (error) {
console.log('Invocation of NewContosoChatMessage failed. Error: ' + error);
});
没有代理人
contosoChatHubProxy.invoke('newContosoChatMessage', { UserName: userName, Message: message}).done(function () {
console.log ('Invocation of NewContosoChatMessage succeeded');
}).fail(function (error) {
console.log('Invocation of NewContosoChatMessage failed. Error: ' + error);
});
注意: 如果在服务器端使用HubMethodName装饰,则无需在客户端将方法名称更改为小骆驼峰. 上面的示例调用一个没有返回值的服务器方法,下面的示例调用一个具有返回值的服务器方法:
public class StockTickerHub : Hub
{
public IEnumerable<Stock> GetAllStocks()
{
return _stockTicker.GetAllStocks();
}
}
public class Stock
{
public string Symbol { get; set; }
public decimal Price { get; set; }
}
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-217310-1.html
沉淀七年而崛起
因为这包装早改了)