Ich entwickle Web-Anwendung in .NET als zwei separate Anwendungen, Back-End mit Webapi C# und Benutzeroberfläche mit AngularJS. Ich möchte nur Chat-Option in diesem Projekt hinzufügen. Ich habe SignalR installiert und ChatHub.cs Klasse in Webapi hinzugefügt.Wie signalR von angularJs zu verbinden
in WebAPI ist es eine Klasse Startup.cs namens
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 Klasse
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();
}
}
}
Was auch immer i Anfrage von Benutzeroberfläche senden Sie es an den entsprechenden Controller treffen wird in webAPI. Zum Beispiel
$http({
method: 'GET',
url: $scope.appPath + "DashboardNew/staffSummary" //[RoutePrefix]/[Route]
}).success(function (result, status) {
data = result;
});
Meine Benutzeroberfläche ist eine separate Anwendung. Wie kann ich SignalR von UI verbinden? Ich habe etwas versucht, aber es hat nicht funktioniert. Kann mir jemand vorschlagen, wie es
HTML-Code
<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"),
})
}
}) erhalten arbeiten;
Es ist nicht anders als SignalR regelmäßig von einer Webseite zu verwenden. Die Dokumentation ist gut und enthält viele Beispiele zur Verwendung. –
können Sie bitte irgendwelche Beispiele oder Link teilen – Boopathi
Es ist nicht so klar, was Sie wirklich brauchen, oder besser, was sind die Fehler, die Sie Hilfe anfordern. Sie möchten wissen, wie Sie den Signaler-Start in Angular integrieren können oder ob Sie Fehler bei zB CORS haben? – Hoghweed