微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误:在连接传输器之前无法发送-SignalR

如何解决错误:在连接传输器之前无法发送-SignalR

我在我的React Native应用中使用signalR来发表评论。当我第一次尝试建立连接并在帖子上发表评论时,出现错误:在连接传输装置之前无法发送。但是第一次之后,它就可以正常工作了。 我尝试过诸如const envData = await preferencesModel.findOne({ userEmail,"environments.envId": envId },{ 'environments.$.envId': envId }).lean(); @aspnet/signalr之类的库。两个库都发生了相同的事情。我认为我的连接存在问题。

由于我需要在应用程序的不同区域发出信号,如评论通知和消息,因此我以这种方式创建连接。

@microsoft/signalr

函数返回连接实例,我正在做进一步的处理

import {HubConnectionBuilder,LogLevel} from '@aspnet/signalr';

var connection_count = 0;
export const connectionSignalR = async (endPoint,token) => {
  return new Promise((resolve,reject) => {
    let _hubConnection = new HubConnectionBuilder()
      .withUrl(
        `http://www.XXXXXXX.com/${endPoint}?access_token=${token}`,)
      .configureLogging(LogLevel.Debug)
      .build();
    const startConnection = async () => {
      await _hubConnection.start();
      console.log('[SignalR Connection State]:',_hubConnection.state);
      if (_hubConnection.state === 1) {
        connection_count = 0;
        resolve(_hubConnection);
      } else {
        console.log('[Error with connection signalR]:   ');
        if (connection_count < 3) {
          connection_count = connection_count + 1;
          console.log('[Trying to connection again]:');
          startConnection();
        } else {
          connection_count = 0;
          reject('Error in connection');
        }
      }
    };

    startConnection();
  });
};

解决方法

首先,您应该使用@microsoft/signalr软件包,因为另一个软件包已经过时了,这是可以维护并接收更新的软件包。

关于您的错误:开始连接之前,您应该注册侦听器。因此,在构建集线器时需要注册此行代码。

hubConnection.on('AddComment',res => {
        console.log('[Response from add comment]',res);
      });

所以应该是这样的:

let _hubConnection = new HubConnectionBuilder()
      .withUrl(
        `http://www.XXXXXXX.com/${endPoint}?access_token=${token}`,)
      .configureLogging(LogLevel.Debug)
      .build();

hubConnection.on('AddComment',res);
      });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。