Được vật lộn với lỗi này dán hai tiếng đồng hồ ..
TypeError: $.connection is undefined
[Break On This Error]
var chatHubClient = $.connection.chatHub;
đây là Chat.cs của tôi (đó là trong thư mục controller - tôi đoán là đây là những gì tôi đang làm sai, nhưng tôi không thể tìm thấy bất kỳ tài liệu về nơi để đặt nó hoặc làm thế nào để định tuyến nó)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SignalR.Hubs;
namespace SingalrTest.Controllers
{
public class Chat
{
private readonly static Lazy<Chat> _instance = new Lazy<Chat>(() => new Chat());
public static Chat Instance
{ get { return _instance.Value; } }
}
[HubName("chatHub")]
public class ChatHub : Hub
{
private readonly int TimeoutInSeconds = 30;
private readonly Chat _chat;
public ChatHub() : this(Chat.Instance) { }
private ChatHub(Chat chat)
{
this._chat = chat;
}
public void Join(string channelName)
{
System.Diagnostics.Debug.WriteLine("Someone joined " + channelName);
}
}
}
Và cuối cùng, .. các thể _Layout.cs.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title - My ASP.NET MVC Application</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/Scripts/jquery-1.8.1.js")
@Scripts.Render("~/Scripts/jquery.signalR-0.5.3.js")
@Scripts.Render("~/signalr/hubs")
<script type="text/javascript">
$(document).ready(function() {
// var chatHubClient = jQuery.connection.chatHub;
var chatHubClient = $.connection.chatHub;
$.connection.chatHub.start(function() {
chatHubClient.join('TEST');
});
});
</script>
</head>
<body>
...
</body>
</html>
Và nếu tôi truy cập vào/signalr/hub, tôi có thể thấy rằng nguồn được tạo chính xác. Vì vậy, những gì biggy tôi mất tích?
Tôi gặp vấn đề tương tự. Đối với một số lý do $ .connection không được định nghĩa khi sự kiện $ .ready xảy ra. Tôi đã sửa lỗi bằng cách chạy mã nội tuyến thay vì trên sự kiện sẵn sàng ... Tôi không biết tại sao nó biến mất ... –