SignalR-记录接收连接请求并失败的后端

时间:2019-06-13 13:35:02

标签: c# asp.net-core signalr

问题是SignalR(版本1.0.8)间歇性地由于我们无法理解的原因无法连接到后端。

我想记录一个事实,即客户端尝试连接以及为什么客户端在后端失败。

我已经能够使用Microsoft Docs添加前端日志记录(以下所有示例均直接从此处开始)。前端代码如下所示,并且可以正常工作:

 public startConnection = () => {
    try {
      this.hubConnection = new signalR.HubConnectionBuilder()
        .withUrl(environment.apiEndpoint + '/eventhub')
        .configureLogging(this.backendLogger)
        .build();
....

以上内容为我在控制台(或我想登录的任何地方)中提供了如下所示的输出(不重要,仅就上下文而言):

  

调试:启动HubConnection.backend-logger.service.ts:15

     

调试:以传输格式“文本”开始连接。 backend-logger.service.ts:15

     

调试:发送协商请求:http://localhost:54622/api/eventhub/negotiate。   backend-logger.service.ts:15

     

调试:选择传输“ WebSockets”。   backend-logger.service.ts:15

     

TRACE:(WebSocket传输)正在连接。   backend-logger.service.ts:15

     

信息:WebSocket已连接至ws:// localhost:54622 / api / eventhub?id = 1dQb2mby4ikkeG8cBmog-g。   backend-logger.service.ts:15

     

调试:发送握手请求。   channel.service.ts:90加入了

我需要的是这样的后端:

  

客户端x尝试连接

     

由于y

,连接失败

我看不到从后端登录的方法,除非我从后端启动连接(例如来自文档的示例,而不是我的代码):

var connection = new HubConnectionBuilder()
    .WithUrl("https://example.com/my/hub/url")
    .ConfigureLogging(logging =>
    {
        // Log to the Console
        logging.AddConsole();

        // This will set ALL logging to Debug level
        logging.SetMinimumLevel(LogLevel.Debug);
    })
    .Build();

我没有做任何事情(因为我从客户端开始连接),.NET中唯一的SignalR设置是services.AddSignalR();文件中的Startup.cs 。我假设negotiate端点是在SignalR库内的某个位置定义的,但是我需要记录接收到客户端的连接请求,如果连接失败,该请求将失败,该如何完成?中间件是我唯一的选择吗?这似乎是一种完全错误的方法。

0 个答案:

没有答案