嗨,我遇到了一个问题,我在一个组中的 SignalR 客户没有收到发送的信息。
我已经以两种方式尝试过这个,但都不起作用。
在加载的网页上,客户端将调用服务器以获取组名,然后调用集线器上的方法将用户加入该组。
JavaScript.....
var connectionOpen = false;
var myHub;
$(function () {
myHub = $.connection.myHub;
myHub.client.showMessage = alertMessage;
$.connection.hub.start(function () {
connectionOpen = true;
joinGroup();
});
});
function joinGroup() {
$.ajax({
url: 'Controller/GetGroupName,
type: 'POST',
success: function (group) {
if (connectionOpen == true)
tileHub.server.joinGroup(group);
}
});
}
function alertMessage(string value){
alert(value);
}
Controller
[HttpPost]
public JsonResult GetGroupName()
{
return Json("Foo");
}
我的中心
public void JoinGroup(string groupName)
{
Groups.Add(Context.ConnectionId, groupName);
}
我已经多次通过代码,我可以看到我连接正常并加入组但是当我尝试发送回组时没有任何 react
我从我的 Controller 使用这个发送到组
GlobalHost.ConnectionManager.GetHubContext<myHub>().Clients.Group("Foo").showMessage("Hello");
这是我尝试过的第二种方式,我也尝试过从集线器发送到组,但仍然没有快乐。
任何帮助将不胜感激...
更新
多亏了大卫福勒,这已经得到了修复......
这是一个错误,因为我使用 HubName 属性给集线器一个不同的名称,然后使用 longPolling 传输给信号R。删除该属性允许它知道工作。还提供了修复程序,请参阅 https://github.com/SignalR/SignalR/issues/1039
最佳答案
几样东西:
关于c#-4.0 - SignalR 组未获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13531314/