【发布时间】:2016-08-29 03:05:22
【问题描述】:
我有一个使用SignalR-2.2.1 从客户端到服务器的请求。在该请求之后,服务器将结果发送回调用者。
这是我的JavaScript 代码:
$(document).ready(function () {
var myHub = $.connection.signalHub;
myHub.client.receive = function (tmp) {
var obj = $.parseJSON(tmp);
//do something
};
$.connection.hub.start().done(function () {
$('#xxxxx').click(function () {
var form = $("form");
form.submit();
myHub.server.sendSomething();
});
}).fail(function (reason) {
//do something
});
});
这是我服务器端的代码
public partial class SignalHub : Hub
{
public void SendSomething()
{
Clients.All.receive(MyJson);
}
}
当我使用Clients.All 函数时,它工作得非常好。但我想要的是服务器只将结果发送回调用者(发送请求的那个)。
所以我将Clients.All.receive(MyJson) 更改为Clients.Caller.receive(MyJson)。在我更改它之后,现在客户端不会更新内容。我是否需要在客户端指定接收函数以使其接收不同的内容?
【问题讨论】:
-
不,应该可以。浏览器控制台中的任何内容?
-
@Mark 检查我的答案
-
@SamiKuhmonen 就像在 javascript 中没有调用该函数一样。控制台/日志中没有任何内容。
标签: c# asp.net-mvc signalr signalr-hub signalr.client