Asp.net mvc 信号器-向特定客户端发送数据

Asp.net mvc 信号器-向特定客户端发送数据,asp.net-mvc,signalr,Asp.net Mvc,Signalr,我想将数据发送到特定的客户端。为了做到这一点,我正在尝试以下几点: public Task GetWaitingOrdersCount(string id, string clientId) { DateTime today = Util.getCurrentDateTime(); var data = 10 return Clients.Client(Context.ConnectionId).loadOrders(data);

我想将数据发送到特定的客户端。为了做到这一点,我正在尝试以下几点:

public Task GetWaitingOrdersCount(string id, string clientId)
    {
        DateTime today = Util.getCurrentDateTime();

      var data = 10

      return Clients.Client(Context.ConnectionId).loadOrders(data);

      //return data;
    }
在上面的代码中,我想向传递给此方法的“clientId”发送“data”。 但我在这行有个错误

 return Clients.Client(Context.ConnectionId).loadOrders(data);
错误是

'System.Threading.Tasks.Task<object>' does not contain a definition for 'loadOrders'
关于这个错误有什么帮助吗

编辑: 这是我的完整客户端代码

<script type="text/javascript">
var con;
$(document).ready(function () {
    con = $.connection.messagingHub;


    $.connection.hub.start(function () {
        var myClientId = $.connection.hub.id;
        con.getWaitingOrdersCount('<%:ViewBag.rid%>',myClientId).done(function (data) {
            console.log(data);
        });
    });

    con.client.loadOrders = function (data) {
        loadOrders(data);

    };

});
function loadOrders(data) {

    $('#totalOrders').html(data);

var-con;
$(文档).ready(函数(){
con=$.connection.messagingHub;
$.connection.hub.start(函数(){
var myClientId=$.connection.hub.id;
con.getWaitingOrdersCount(“”,myClientId).done(函数(数据){
控制台日志(数据);
});
});
con.client.loadOrders=函数(数据){
装载订单(数据);
};
});
函数装入顺序(数据){
$('#totalOrders').html(数据);

我刚刚试用了你的代码(稍作修改),它对我来说很好。你使用的是什么版本的SignalR?从你的服务器代码来看,我会说1.0Alpha1+,但你的客户端代码看起来更像0.5.3,除非你的con对象被分配给$.connection.yourhub.client

如果您更新到SignalR 1.0Alpha 2并将客户端代码更改为:

var con = $.connection.myCon;// This is arbitrary and would change based on your naming

con.client.loadOrders = function (data) {
    loadOrders(data);

};

function loadOrders(data) {
    $('#totalOrders').html(data);
}
话虽如此,我相信您的问题与您正在使用的signer版本有关,服务器端就是:因为您收到了一个面向任务的错误。另一个可能有用的信息是了解如何调用GetWaitingOrdersCount。也就是说,它是通过:con.server.getWaiti从客户端直接调用的吗ngOrdersCount,或者正在从中心内部调用它


希望这些信息有帮助!

loadOrders(数据)的退货类型是什么?我没有返回任何内容..只是在标记内打印“数据”。你能详细说明如何使用GetWaitingOrdersCount返回的任务吗?客户端是如何定义的?客户端是什么?我添加了完整的客户端代码。嗨Taylor..我的信号器版本是0.5.1.10822。这是我正在使用的正确版本吗?我添加了完整的客户端代码t代码在我的问题中,我也根据您的代码进行了修改。仍然存在问题:(哦,天哪,如果您使用的是0.5.1,那么您的客户端。客户端部分是错误的。0.5.1中正确的代码是Clients[Context.ConnectionId]。loadOrders(data);如果你想更新到1.0 Alpha2,你可以在Nuget中搜索Microsoft.AspNet.signal,并将你的过滤器设置为“包含预发布”。然后从那里开始更新。请记住,如果使用1.0 Alpha2,会有一些突破性的变化(但我强烈建议使用1.0 Alpha2).好的..我升级到alpha2。任务错误现在消失了。但最终出现了另一个问题。这里是:
var con = $.connection.myCon;// This is arbitrary and would change based on your naming

con.client.loadOrders = function (data) {
    loadOrders(data);

};

function loadOrders(data) {
    $('#totalOrders').html(data);
}