我尝试在 Angular Controller 中添加 SignalR,但它对我不起作用。这是我的 Angular 代码:
var app;
function () {
app = angular.module('app', []);
app.value('ordersHub', $.connection.ordersHub)
$.connection.hub.start();
app.controller('sendMessage', function ($scope, ordersHub) {
$scope.messages = [];
console.log(ordersHub.client)
ordersHub.client.addNewOrder = function hubMethodInvoked(data) {
console.log('get response in client');
$scope.messages.push(data);
};
$scope.sendMessage = function () {
$scope.messages.push($scope.message)
ordersHub.server.joinGroup("someGroup");
ordersHub.server.newOrder($scope.message, 1);
}
});
})();
来自 ASP.NET 中集线器 Controller 的代码:
public class OrdersHub : Hub
{
public void NewOrder(string groupName, string message)
{
Clients.Group(groupName).addNewOrder(message);
}
public void JoinGroup(string groupName)
{
Groups.Add(Context.ConnectionId, groupName);
}
}
Angular Controller 中的“sendMessage”方法工作正常并向 ASP.NET Controller 发送请求,主要问题是客户端没有从服务器获取响应,请查看 ordersHub.client.addNewOrder 中的 ordersHub.client.addNewOrder有 Angular 。
预先感谢您的回复。
最佳答案
你应该改变
ordersHub.server.newOrder($scope.message, 1);
至
ordersHub.server.newOrder("someGroup", $scope.message);
关于javascript - ASP.NET 中的 SignalR 和 Angular,客户端没有得到响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47494552/