gpt4 book ai didi

javascript - 调用 MapSignalR 导致协议(protocol)错误

转载 作者:行者123 更新时间:2023-11-29 15:34:47 26 4
gpt4 key购买 nike

这是我之前在这里提问的后续问题..

MVC - trouble linking to another Controller/Action

如您所见,我最终确实从另一个 Controller 获取了我的 View 以显示在新选项卡中,因此它可以正常工作。直到我安装了 SignalR。使用本教程作为指南的简单版本..

http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr-and-mvc

按照创建项目的步骤,教程运行良好。我唯一要做的就是将 jquery signalr javascript 文件的版本更改为最新版本(这是我没有的版本,因为本教程是用较旧的 VS 2012 编写的)。

无论如何,在对我的站点执行相同的步骤后,我现在在单击/SignalR/SRStart(新选项卡)的链接时收到错误消息。

协议(protocol)错误:未知传输

我发现这只会在调用 startup.cs 文件中的 app.MapSignalR() 之后发生。无法理解为什么自从我遵循的教程工作正常,除非它与跨越该链接上的另一个 Controller 有关。我在 SRStart View 中放置了所有信号器连接代码和回调函数,但我认为它从未达到过,因为页面甚至没有加载。

这是我的代码..

启动.cs

public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
app.MapSignalR();
}
}

枢纽

public class SRHub : Hub
{
public void Send(string message)
{
// Call the addNewMessageToPage method to update clients.
var conn = GlobalHost.ConnectionManager.GetHubContext<SRHub>();
conn.Clients.All.addNewMessageToPage(message);
//Clients.All.addNewMessageToPage(message);
}
}

SRStart.cshtml 中的 javascript

    $(function () {
// Reference the auto-generated proxy for the hub.
var conn = $.connection.sRHub;
// Create a function that the hub can call back to display messages.
conn.client.addNewMessageToPage = function (message) {
if (!message.contains('[EOF]')) {
populateStreamDialog(message);
}
};

$.connection.hub.start()
.done(function () {

});
});

任何帮助将不胜感激..

最佳答案

我能够重现错误。问题是 /SignalR 是 SignalR 本身使用的路由。通过使用名为 SignalRController 的 MVC Controller ,现在 SignalR 和 MVC 之间存在冲突导致错误。只需将 MVC Controller SignalRController(以及包含其 View 的文件夹)重命名为其他名称...

关于javascript - 调用 MapSignalR 导致协议(protocol)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30528396/

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