我正在尝试在angular中使用signalr。我在c#中有一个工作中心,它有一个名为Hello的函数
public class myHub : Hub
{
public void Hello(string msg)
{
Console.WriteLine("HIIII" + msg);
}
}
我正在使用angular 5和包ng2-signalr,但我不知道如何创建连接。我试着遵循documentation,但是我不能理解代码的流程。谁能给我指个指南,或者举个简单的例子
发布于 2018-07-25 04:58:35
我确实把它连上了。
请按照版本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),只需输入服务的根目录即可。软件包将添加signalr路由
如文档所述,将此代码添加到导入的末尾
SignalRModule.forRoot(createConfig)
然后,我尝试将连接注入到单个组件中。
// inside your component.
constructor(private _signalR: SignalR) {
}
ngOnInit() {
this._signalR.connect().then((c) =>console.log("Connected"));
}
我遇到的障碍是我在服务中遇到的cors。在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
});
});
}
这使我能够成功地连接到集线器。
https://stackoverflow.com/questions/50532052
复制相似问题