如何在表示层创建中心连接,并在业务层调用中心.如何在我的 asp.net 多层应用程序中使用信号器



我有一个应用程序(asp.net c#(,目前有 5 个项目。我想将聊天添加到我的应用程序中,所以我使用信号器技术。如何在应用程序中配置客户端-服务器?由于我无法理解在我的项目中配置集线器连接,因此中心是在应用程序的另一个项目中创建的。 在Microsoft文档中,中心是在同一应用程序中创建的,因此它的配置就像var chatHub = $.connection.chatHub;一样。但就我而言,集线器是另一个项目。还有这个<script src="signalr/hubs"></script>脚本标签是什么意思。
应用项目,项目评审

Add nuget library Microsoft.AspNet.SignalR

public class Startup
{
    public void Configuration(IAppBuilder appBuilder)
    {
        httpConfiguration.EnableCors(new EnableCorsAttribute("*", "*","*"));
        appBuilder.UseCors(CorsOptions.AllowAll);
        GlobalHost.DependencyResolver.Register(typeof(NotificationHub), 
        IocInitializer.Container.GetInstance<NotificationHub>);
        appBuilder.Map(
            "/signalr",
            map =>
            {
                var hubConfiguration = new HubConfiguration { 
               EnableDetailedErrors = true };
                map.RunSignalR(hubConfiguration);
            });
        appBuilder.MapSignalR();
}
public class NotificationHub : Hub
{
    private static IHubContext hubContext = 
    GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();
    public IEcapBus EcapBus { get; set; }
    public ISecurityDataProvider SecurityDataProvider { get; set; }
    public NotificationHub()
    {
        this.SecurityDataProvider = securityDataProvider;
        this.EcapBus = ecapBus;
    }

    public void Hello()
    {
        Clients.All.hello();
    }
}

客户端代码添加信号器 jQuery 库

    var connection = $.hubConnection(baseUrl);
    connection.qs = "Authorization=" + token;
    var chatHubProxy = connection.createHubProxy('NotificationHub');
    var actionName = ['Notify'];
    chatHubProxy.on(actionName[0], function (message) {
        console.log("I got message");
        console.log(message);
        onReceiveMessage(message);
    });
    connection.start().done(function () {
        console.log("connected");
    }).fail(function (a) {
        console.log('not connected' + a);
        });

现在只需从服务器端的任何位置调用 NotifierHub.Hello((

相关内容

  • 没有找到相关文章

最新更新