我正试图在角度中使用信号器。 我在c#中有一个工作中心,其函数叫做Hello
public class myHub : Hub
{
public void Hello(string msg)
{
Console.WriteLine("HIIII" + msg);
}
}
我正在使用angular 5和ng2-signalr包,但我不了解如何创建连接。 我试图遵循documentation,但我无法理解代码的流程。 任何人都可以指向我或指示一个简单的例子
答案 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
});
});
}
这使我能够成功连接到集线器。