.net - SignalR - connection.hubName 未定义

标签 .net asp.net-mvc-3 ssl https signalr

我有以下 SignalR 集线器类(仅显示顶部):

[HubName("DataServiceHub")]
public class DataServiceHub : Hub, IDataServiceHub, IDisconnect, IConnected
{
.
.      

然后我在主函数中使用以下代码在控制台应用程序中自行托管集线器:

string hubsUrl = appSettingsReader.GetValue("hubsUrl", typeof(string)).ToString();
var hubsServer = new Server(hubsUrl);
hubsServer.Configuration.DisconnectTimeout = TimeSpan.Zero;
hubsServer.MapHubs();
hubsServer.Start();

hubsUrl 的值为“http://localhost:4322/”

运行控制台应用程序后,如果我在 Chrome 中浏览“http://localhost:4322/signalr/hubs”,我可以在底部看到 SignalR javascript 和我的集线器:

signalR.dataServiceHub = {
    _: {
        hubName: 'dataServiceHub',

我正在尝试从在 HTTPS/SSL 设置上运行的 MVC3 应用程序连接到此中心(即站点 url 前缀是“https://localhost/”

在我的 Razor 页面中,我肯定包含 SignalR js:

<script src="/Website/Scripts/kendo/2012.2.710/jquery.min.js" type="text/javascript"></script>
<script src="/Website/Scripts/jquery.signalR-0.5.3.min.js" type="text/javascript"></script>
<script src="http://localhost:4322/signalr/hubs" type="text/javascript"></script>

请注意,我们使用的是 Kendo,因此 jquery js 包含是通过它来实现的。

然后在 $(document).ready(function () { 我有以下内容:

jQuery.support.cors = true;
var connection = $.hubConnection('http://localhost:4322');
var hub = connection.dataServiceHub;

但是 'hub' 总是 'undefined'。

我在这里错过了什么?

如果这是跨域问题 - 我该如何解决?

最佳答案

集线器有 2 种编程模型,您正在混合使用它们:

  1. > http://www.asp.net/signalr/overview/hubs-api/hubs-api-guide-javascript-client
  2. > http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client

如果您滚动到这些页面的底部,则会有一个示例向您展示在每个模型中使用跨域需要执行的操作。

关于.net - SignalR - connection.hubName 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13479568/

相关文章:

c# - 使用无效证书解决方法的 WebService 的 SSL 连接不起作用

jsf - 使用 HTTPS 无法直接访问 protected JSF 页面

php - 使用 PHP 从 p12 证书文件中获取信息

.net - 无法在循环中更新表单

.net - Cocoa Core Data 新手指南

javascript - 反序列化服务器 asp.net mvc 3 上的 javascript 日期

jquery - 将 qTip 与 MVC3 和 jQuery 验证集成 (errorPlacement)

c# - 如何覆盖 ASP.NET MVC 3 默认模型绑定(bind)器以在模型创建期间解决依赖关系(使用 ninject)?

.net - 防止多次登录同一台计算机的技术

c# - 处理网页浏览器控件的点击事件