2012-11-28 39 views
7

Tôi đang làm theo hướng dẫn này nhanh chóng nhận được một dự án SignalR bắt đầu, và trong lớp Hub của tôi, tôi đã sauSignalR bản demo không làm việc

using Microsoft.AspNet.SignalR.Hubs; 

namespace MvcApplication8.Hubs 
{ 
    public class ChatHub : Hub 
    { 
     public void BroadcastMessage(string message) 
     { 
      Clients.writeMessage(message); 
     } 
    } 
} 

Khách hàng mã:

$(document).ready(function() { 
     var chat = $.connection.chatHub; 
     chat.writeMessage = function(msg) { 
      $("#messages").append("<li>" + msg + "</li>"); 
     }; 
     $("#buttonSubmit").click(function() { 
      chat.broadcastMessage($("#txtInput").val()); 
     }); 
     $.connection.hub.start(); 
    }); 

Tuy nhiên tôi 'm nhận được một lỗi thời gian biên dịch nói rằng:

' Microsoft.AspNet.SignalR.Hubs.HubConnectionContext 'không chứa định nghĩa cho 'writeMessage' và không có phương pháp mở rộng 'writeMessage' chấp nhận một đối số đầu tiên của loại 'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext' có thể được tìm thấy (bạn thiếu một chỉ thị sử dụng hoặc tham chiếu assembly?)

Trường hợp xảy ra sự cố?

Tôi đã cài đặt SignalR vào dự án của tôi từ http://nuget.org/packages/microsoft.aspnet.signalr sử dụng gói quản lý giao diện điều khiển "Install-Package Microsoft.AspNet.SignalR -Pre"

+0

Tôi đã chỉnh sửa bài của tôi để bao gồm thông điệp thực tế Wow, một cuộc bỏ phiếu xuống chỉ cho điều đó? nói với tôi rằng sẽ là đủ. Tôi nhận được một lỗi thời gian biên dịch, tôi có thực sự cần phải yêu cầu một cách rõ ràng "làm thế nào để tôi thoát khỏi lỗi thời gian biên dịch?" –

Trả lời

1

Bạn đã tạo cho khách hàng chức năng tương ứng?

<script type="text/javascript"> 
    $(function() { 
     var chat = $.connection.chat; 
     chat.writeMessage = function (message) { 
      $('#messages').append('<li>' + message + '</li>'); 
     }; 
     $.connection.hub.start(); 
    }); 
</script> 
+0

Có, tôi đã cập nhật bài đăng chính của mình bằng mã khách hàng –

1

Kiểm tra xem bạn đã cài đặt các gói sau:

  • Microsoft.AspNet.SignalR
  • Microsoft.AspNet.SignalR.Core
  • Microsoft.AspNet.SignalR.Hosting.AspNet
  • Microsoft.AspNet.SignalR.Hosting.Common
0

Thử cập nhật gói NuGet. Công cụ> Quản lý gói NuGet> Quản lý gói NuGet cho giải pháp, ở phần bên trái của cửa sổ nhấp vào "Cập nhật", ở phần trung tâm của cửa sổ bạn sẽ nhận được danh sách các gói cần cập nhật, sau đó nhấp "Cài đặt" trên gói bạn thích để có phiên bản mới nhất. Tôi cập nhật tất cả: JQuery, Json.NET, Microsoft ASP.NET SignalR, Microsoft.Owin

Sau khi cập nhật các gói lên phiên bản mới nhất (SignalR hiện tại 2.2.0) bạn có thể biên dịch. Đừng quên tham khảo cập nhật trong "StockTicker.html", trong trường hợp của tôi sau khi cập nhật giống như thế này:

<script src="/Scripts/jquery-2.1.4.min.js"></script> 
<script src="/Scripts/jquery.signalR-2.2.0.js"></script> 
Các vấn đề liên quan