gpt4 book ai didi

asp.net-mvc - 未找到 SignalR 回显/协商?

转载 作者:行者123 更新时间:2023-12-02 21:44:42 28 4
gpt4 key购买 nike

Index.cshtml

@{
ViewBag.Title = "Index";
}
<script src="~/Scripts/jquery.signalR-2.0.0.min.js"></script>
<script>
$(function () {
var connection = $.connection('/echo');

connection.received(function (data) {
$('#messages').append('<li>' + data + '</li>');
});

connection.start().done(function () {
$("#broadcast").click(function () {
connection.send($('#msg').val());
});
});

});
</script>
<input type="text" id="msg" />
<input type="button" id="broadcast" value="broadcast" />

<ul id="messages">
</ul>

startup.cs

using Microsoft.Owin;
using Owin;
using UI;

namespace UI
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}

MyConnection.cs

public class MyConnection : PersistentConnection
{
protected override Task OnConnected(IRequest request, string connectionId)
{
return Connection.Send(connectionId, "Welcome!");
}

protected override Task OnReceived(IRequest request, string connectionId, string data)
{
return Connection.Broadcast(data);
}
}

我是 signalR 新手。当我启动项目时,出现以下错误:

http://localhost:49820/echo/negotiate?clientProtocol=1.3&_=1383403303981 404 (Not Found)

enter image description here

这是什么原因以及如何解决?我找不到关于这个问题的任何解决方案。 (.net Framework 4.5 和 signalR 2.0)

最佳答案

我目前无法调试您的代码,但我认为您应该考虑两个可能的问题。

1) 您在启动集线器功能中错过了“$.connection.hub”。当您从服务器端调用接收方法到客户端时,您需要添加“connection.client.received”。它应该像下面这样:

$(function () {
var connection = $.connection('/echo');

connection.client.received(function (data) {
$('#messages').append('<li>' + data + '</li>');
});

$.connection.hub.start().done(function () {
$("#broadcast").click(function () {
connection.send($('#msg').val());
});
});

});

2) 您需要映射您的持久连接。我相信 signalR 1.x 应该是这样的:

RouteTable.Routes.MapConnection<MyConnection>("echo", "/echo");

但在 SignalR 2.0 中,您需要在中心 Startup 类中执行以下操作。下面只是一个例子。

public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR<MyConnection>("/echo");
}

关于asp.net-mvc - 未找到 SignalR 回显/协商?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19743180/

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