You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中使用@microsoft/signalR连接第三方SignalR服务遇版本兼容错误

问题根源

你使用的@microsoft/signalR是ASP.NET Core SignalR专属客户端,完全不兼容旧版的ASP.NET SignalR服务器(也就是你连接的https://signals.fanbotuk.com/signalr/hubs)。控制台先打印"hub connected"是因为初始HTTP握手步骤完成了,但后续协议校验时识别出服务器是旧版本,随即抛出不兼容错误。

解决方法

替换为旧版SignalR客户端包(不带@microsoft前缀的signalR),并调整代码适配旧版API:

  1. 替换客户端包
npm uninstall @microsoft/signalr
npm install signalr
  1. 修改连接代码
// 先确保项目引入了jQuery(可通过npm install jquery后import,或HTML引入CDN)
import $ from 'jquery';
import 'signalr';

const connectionUrl = "https://signals.fanbotuk.com/signalr/hubs";

// 旧版客户端创建连接的方式
const connection = $.hubConnection(connectionUrl);
// 创建Hub代理(需替换为服务器端实际的Hub名称)
const hubProxy = connection.createHubProxy('TargetHubName');

// 示例:监听服务器推送的消息
hubProxy.on('messageReceived', (data) => {
  console.log('收到服务器消息:', data);
});

async function startConnection() {
  try {
    await connection.start();
    console.log('hub connected');
  } catch (err) {
    console.log('connection error');
    console.error(err);
    // 可选:添加自动重试逻辑
    setTimeout(startConnection, 5000);
  }
}

startConnection();

export default { connection, hubProxy };

注意:官方旧版SignalR客户端依赖jQuery,必须确保项目中已引入jQuery才能正常运行。

内容的提问来源于stack exchange,提问作者Khushboo Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 19:50:23