我想将数据发送到特定客户端。要做到这一点,我尝试以下;
public Task GetWaitingOrdersCount(string id, string clientId)
{
DateTime today = Util.getCurrentDateTime();
var data = 10
return Clients.Client(Context.ConnectionId).loadOrders(data);
//return data;
}
在上面的代码中,我想将'data'发送到传递给此方法的'clientId'。 但我在这一行中有错误
return Clients.Client(Context.ConnectionId).loadOrders(data);
错误是
'System.Threading.Tasks.Task<object>' does not contain a definition for 'loadOrders'
客户端代码
con.loadOrders = function (data) {
loadOrders(data);
};
function loadOrders(data) {
$('#totalOrders').html(data);
}
有关错误的任何帮助???
修改 这是我的完整客户端代码..
<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);
答案 0 :(得分:0)
我刚尝试了你的代码(稍加修改),它对我来说很好。您使用的是什么版本的SignalR?根据您的服务器代码判断我会说1.0Alpha1 +,但您的客户端代码看起来更像0.5.3,除非您的con对象被分配给$ .connection.yourhub.client;
如果您更新到SignalR 1.0Alpha2并将您的客户端代码更改为:
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);
}
话虽如此,我相信您的问题与您正在使用的SignalR版本有关,服务器端是:因为您收到了面向任务的错误。可能有益的另一条信息是知道如何调用GetWaitingOrdersCount。 Aka是从客户端直接通过:con.server.getWaitingOrdersCount调用的,或者是从集线器中调用它。
希望此信息有所帮助!