gpt4 book ai didi

.net - SignalR(带有自托管的Nancy)显示404进行协商?clientProtocol = 1.3

转载 作者:行者123 更新时间:2023-12-04 13:32:47 25 4
gpt4 key购买 nike

我正在尝试在控制台应用程序中的Nancy中运行SignalR。

当我的浏览器执行$.connection.hub.start()时,它将获得404 - NotFound//localhost:667/negotiate?clientProtocol=1.3
---- 8 <----

我(正在尝试)在一个端口上运行Nancy,在另一个端口上运行SignalR。南希与 Razor 合作。 SignalR返回集线器javascript。

(对不起,下面的代码很多,但是我无法进一步减少它。)
(此问题可能是我以前标注不好的以前删除的问题(现在已经删除的问题)。)

客户代码:

    <script type="text/javascript" src='/Scripts/jquery-1.6.4.min.js'></script>
<script type="text/javascript" src="/Scripts/jquery.signalR-2.0.0-beta2.js"></script>
<script src="http://localhost:667/signalr/hubs" type="text/javascript"></script>
var chat;
$(function () {
$.connection.hub.url = '//localhost:667';
$.connection.hub.logging = true;
chat = $.connection.chat;
chat.client.addMessage = onAddMessage; // declared but not here

$.connection.hub.start()
.done(function () {
alert($.connection.id);
chat.server.send('Works!');
})
.fail(function ( failreason ) {
alert( failreason );
});
});

服务器代码(在以管理员身份运行的控制台程序中)
class Program
{
static void Main(string[] args)
{
const string webUrl = "http://localhost:666";
const string signalrUrl = "http://localhost:667";

using (var webHost = new Nancy.Hosting.Self.NancyHost(
new Uri(webUrl) ))
{
using (WebApp.Start<Startup>(signalrUrl))
{
webHost.Start();

Console.Write("Press any key");
Console.ReadKey();
webHost.Stop();
}
}
}
}

class Startup
{
public void Configuration(Owin.IAppBuilder app)
{
app.MapHubs(new HubConfiguration() { EnableCrossDomain = true });
app.UseNancy(new ApplicationBootstrapper());
}
}

public class ApplicationBootstrapper : DefaultNancyBootstrapper
{
protected override void ConfigureConventions(
Nancy.Conventions.NancyConventions nancyConventions)
{
nancyConventions.StaticContentsConventions.Add(
Nancy.Conventions.StaticContentConventionBuilder.AddDirectory(
"Scripts", @"/Scripts")
);
base.ConfigureConventions(nancyConventions);
}
}

public class Chat : Hub
{
public void Send(string message)
{
Clients.All.addMessage(message);
}
}

最佳答案

我使用Signalr 1.1.2和SignalR 2.0.0-beta2尝试了上述代码。
我对您的代码所做的唯一更改是

调整

  $.connection.hub.url = '//localhost:667';


 $.connection.hub.url = 'http://localhost:667/signalr';

并添加了js函数AddMessage以显示收到的消息,并成功执行,并显示消息“Works!”

关于.net - SignalR(带有自托管的Nancy)显示404进行协商?clientProtocol = 1.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17956920/

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