我通过引用
自我托管了一个SignalR服务器“Signalr Owin simple example javascript client not being called”和“https://github.com/SignalR/SignalR/wiki/Self-host”
链接,但是当我尝试从javascript调用该集线器时,我收到了以下错误
“错误:SignalR:加载集线器时出错。请确保您的集线器引用正确,例如。”
我的自托管服务器看起来像这样:
“Hub Class”
使用Microsoft.AspNet.SignalR; 使用系统;运用 System.Collections.Generic; 使用System.Linq; 使用System.Text; 使用System.Threading.Tasks; 使用Microsoft.Owin.Hosting; 使用Owin; 命名空间SignalrWorker { 公共课聊天:Hub { public void Send() { Clients.All.send( “你好”); } } }
“启动课程”
使用System; 使用System.Collections.Generic; 使用System.Linq; 使用System.Text; 使用System.Threading.Tasks; 使用Microsoft.AspNet.SignalR; 使用Owin;
命名空间SignalrWorker { 公共课启动 { public void Configuration(IAppBuilder app) { //打开跨域 var config = new HubConfiguration {EnableCrossDomain = true,EnableJavaScriptProxies = true,EnableDetailedErrors = true};
// This will map out to http://localhost:8080/signalr by default app.MapHubs(config); } }
}
“Azure工作者角色”
使用System; 使用System.Collections.Generic; 使用System.Diagnostics; 使用System.Linq; 使用System.Net; 使用System.Threading; 使用Microsoft.WindowsAzure; 使用Microsoft.WindowsAzure.Diagnostics; 使用Microsoft.WindowsAzure.ServiceRuntime; 使用Microsoft.WindowsAzure.Storage; 使用Microsoft.AspNet.SignalR; 使用Owin; 使用Microsoft.Owin.Hosting;
命名空间SignalrWorker { public class WorkerRole:RoleEntryPoint { public override void Run() { //这是一个示例工作者实现。替换你的逻辑。 Trace.TraceInformation(“SignalrWorker入口点称为”,“信息”); 尝试 {
using (WebApp.Start<Startup>("http://127.0.0.1:82/")) { Trace.TraceInformation("Working", "Server running at http://127.0.0.1:82/"); } while (true) { Thread.Sleep(10000); Trace.TraceInformation("Working", "Information"); } } catch (Exception ex) { Thread.Sleep(1000); Trace.WriteLine("Error", ex.Message); } } public override bool OnStart() { // Set the maximum number of concurrent connections ServicePointManager.DefaultConnectionLimit = 12; // For information on handling configuration changes // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. return base.OnStart(); } }
}
AignalR客户端如下:
@ ViewBag.Title - 我的ASP.NET MVC应用程序 @ Styles.Render( “〜/内容/ CSS”) @ * @ Scripts.Render(“〜/ bundles / modernizr”)* @
</head>
<body>
<header>
<div class="content-wrapper">
<div class="float-left">
<p class="site-title">@Html.ActionLink("your logo here", "Index", "Home")</p>
</div>
<div class="float-right">
<section id="login">
@Html.Partial("_LoginPartial")
</section>
<nav>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>
</nav>
</div>
</div>
</header>
<div id="body">
@RenderSection("featured", required: false)
<section class="content-wrapper main-content clear-fix">
@RenderBody()
</section>
</div>
<footer>
<div class="content-wrapper">
<div class="float-left">
<p>© @DateTime.Now.Year - My ASP.NET MVC Application</p>
</div>
</div>
</footer>
@Scripts.Render("~/bundles/jquery")
<script src="~/Scripts/jquery.signalR-1.1.2.js"></script>
<script type="text/javascript" src="http://127.0.0.1:82/signalr/hubs"></script>
<script type="text/javascript">
$(function () {
/* // Proxy created on the fly
var myHub = $.connection.chat;
// Declare a function on the hub so the server can invoke it
myHub.send = function (message) {
console.log("hi");
};
*/
// Start the connection
$.connection.hub.url = 'http://127.0.0.1:82/signalr';
$.connection.hub.start(function() {
console.log("hi");
});
});
</script>
</body>
由于工作陷入困境,请尽快帮助
提前致谢