Я разрабатываю веб-приложение в .NET как два отдельных приложения, back end используя webapi C# и пользовательский интерфейс, используя AngularJS. Я просто хочу добавить параметр Chat в этот проект. Я установил SignalR и добавил класс ChatHub.cs в webapi.Как подключить signalR от angularJs
в WebAPI есть класс с именем Startup.cs
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
config.Formatters.JsonFormatter.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local;
WebApiConfig.Register(config);
app.UseCors(CorsOptions.AllowAll);
ConfigureAuth(app);
app.UseWebApi(config);
app.MapSignalR();//added after installation of SignalR package
}
}
ChatHub класса
public class ChatHub : Hub
{
public static string emailIDLoaded = "";
public void Connect(string userName, string email)
{
emailIDLoaded = email;
var id = Context.ConnectionId;
using (SmartCampEntities dc = new SmartCampEntities())
{
var userdetails = new ChatUserDetail
{
ConnectionId = id,
UserName = userName,
EmailID = email
};
dc.ChatUserDetails.Add(userdetails);
dc.SaveChanges();
}
}
}
Независимо запрос я отправить с пользовательского интерфейса он ударится в соответствующий контроллер в WebAPI. Например,
$http({
method: 'GET',
url: $scope.appPath + "DashboardNew/staffSummary" //[RoutePrefix]/[Route]
}).success(function (result, status) {
data = result;
});
Мой пользовательский интерфейс представляет собой отдельное приложение. Как я могу подключить signalR из пользовательского интерфейса. Я что-то пробовал, но не получил работу. Может кто-нибудь предложить мне, как заставить его работать
HTML код
<div>
<a class="btn btn-blue" ng-click="sendTask()">SendTask</a>
Javascript
angular.module('WebUI').controller('DashboardCtrl', function ($scope, $window, $http, $modal, ngTableParams) {
$scope.header = "Chat";
$scope.sendTask = function() {
$http({
method: 'POST',
url: $scope.appPath + hubConnetion.server.sendTask("userName","email"),
})
}
});
Это не отличается от использования SignalR регулярно с веб-страницы. Документация хороша и содержит множество примеров того, как ее использовать. –
вы можете поделиться любыми примерами или ссылкой – Boopathi
Не совсем понятно, что вам действительно нужно, или лучше, какие неудачи вы оказываете. Вам нужно знать, как интегрировать запуск Signalr в Angular или вы на сбоях, например, CORS? – Hoghweed