如何使用ng2-signalr

时间:2018-05-25 14:58:51

标签: angular signalr angular5

我正试图在角度中使用信号器。 我在c#中有一个工作中心,其函数叫做Hello

public class myHub : Hub
{
    public void Hello(string msg)
    {
        Console.WriteLine("HIIII" + msg);
    }
}

我正在使用angular 5和ng2-signalr包,但我不了解如何创建连接。 我试图遵循documentation,但我无法理解代码的流程。 任何人都可以指向我或指示一个简单的例子

1 个答案:

答案 0 :(得分:0)

我确实确实连接了它。

请遵循版本> 2的app.module.ts文档

import { SignalRModule } from 'ng2-signalr';
import { SignalRConfiguration } from 'ng2-signalr';

 // >= v2.0.0
 export function createConfig(): SignalRConfiguration {
 const c = new SignalRConfiguration();
 c.hubName = 'name of your hub'; 
 c.qs = { user: 'donald' };
 c.url = 'https://url to root of your service';
 c.logging = true;

 // >= v5.0.0
 c.executeEventsInZone = true; // optional, default is true
 c.executeErrorsInZone = false; // optional, default is false
 c.executeStatusChangeInZone = true; // optional, default is true
 return c;
}

要注意的重要一点是集线器的名称(在您的情况下为myHub),只需输入服务的根目录即可。该软件包将添加信号器路由

按照文档说明,将其添加到导入的末尾

SignalRModule.forRoot(createConfig)

然后我只是尝试将连接注入到单个组件中。

// inside your component.
  constructor(private _signalR: SignalR)  {
}

ngOnInit() {
  this._signalR.connect().then((c) =>console.log("Connected")); 


}

我遇到的障碍是服务中的核心问题。在startup.cs中,这是我的配置

public void Configuration(IAppBuilder app)
    {
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=316888

        app.Map("/signalr", map =>
        {
            map.UseCors(CorsOptions.AllowAll);
            map.RunSignalR(new HubConfiguration()
            {
                EnableDetailedErrors = true,
                EnableJavaScriptProxies = true
            });
        });
    }

这使我能够成功连接到集线器。