gpt4 book ai didi

c# - 在我的 React 应用程序上实现 SignalR

转载 作者:行者123 更新时间:2023-11-30 16:40:03 26 4
gpt4 key购买 nike

我阅读了各种教程并观看了视频,我尝试了所有这些,但似乎没有任何效果。

我的猜测是

<script src="/Scripts/jquery-1.10.2.min.js"></script> 
<script defer src="https://use.fontawesome.com/releases/v5.0.6/js/all.js</script>
<script src = "/Scripts/jquery.signalR-2.3.0.min.js"></script>
<!-- <script src="http://localhost:9092/signalr/hubs"></script> -->
<script src="~/signalr/hubs"></script>

代码行:

 <script src="~/signalr/hubs"></script> 

导致这个错误:

hubs:1 Uncaught SyntaxError: Unexpected token <

我试过用这个代替:

 <script src="http://localhost:9092/signalr/hubs"></script>

但问题是它看不到我的集线器。根据教程,他们说我必须能够导航到:

/signalr/hubs or /signalr/signalr/hubs

但顺便说一下,这两者都会让我进入 404 错误页面,这是我服务器上的代码:

启动.cs

            app.Map("/signalr", map =>
{
var hb = new HubConfiguration()
{
EnableJSONP = true,
EnableJavaScriptProxies = true,
EnableDetailedErrors = true
};
map.RunSignalR(hb);
});
app.MapSignalR();

并尝试在我的组件上访问它:

    componentDidMount() {

var connection = $.hubConnection();
// var hubConnection = connection.createHubProxy('Chat');

connection.url = '~/signalr';
connection.start({})
.done(function (a) {
console.log('================',a)
console.log('Now connected, connection ID=' + connection.id);
console.log(connection);
console.log(connection.chatHub);
//$.connection.chat.server.tachChatHub();
connection.chatHub.server.tachChatHub();
})
.fail(function (e) { console.error('Could not connect ' + e); });
}

它说连接已建立,并给了我一个连接 ID。但是当我记录 connection.chatHub 时,它说未定义因此我无法触发内部功能......

这是集线器的代码:

    public class ChatHub : Hub
{
public void TachChatHub(string name, string message)
{
Clients.All.addNewMessageToPage(name, message);
}
}

对此有什么想法吗?我无法让它工作...

编辑:

经过大量研究,我发现在运行 signalR 之后应该创建一个名为“signalr”的文件夹,但它并没有在我的文件夹中创建。也许我在这里遗漏了一些东西......

最佳答案

修复了有关 Negotiate Made the connection start Like this 的问题:

   $.connection.hub.start({withCredentials:false})  
.done(() => {
console.log('Connected')
})
.fail((e) => {
console.log('Could not connect ' + e);
});

显然,我之前的 cors 设置阻止了它,因此我不需要将凭据传递给服务器,CORS 设置就可以挂接到之前的设置。

现在一切都按照我的预期工作:)

关于c# - 在我的 React 应用程序上实现 SignalR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52051716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com