Tôi có một Ứng dụng web ASP.NET với một trang HTML đơn giản và một số JavaScript để giao tiếp qua SignalR. Điều đó hoạt động tốt. Bây giờ tôi đang cố gắng để gọi một phương thức trên Hub từ một dự án khác (trong cùng một giải pháp) và bằng cách sử dụng .NET Signalr Khách hàng Api:SignalR 2.1.0: Kết nối chưa được thiết lập
var connection = new HubConnection("http://localhost:32986/");
var hub = connection.CreateHubProxy("MessageHub");
connection.Start();
hub.Invoke("SendMessage", "", "");
Dòng cuối cùng gây InvalidOperationException: The connection has not been established.
Nhưng tôi có thể kết nối đến trung tâm từ mã JavaScript của tôi.
Tôi làm cách nào để kết nối với Hub bằng cách sử dụng mã C#?
CẬP NHẬT
Khoảnh khắc sau khi viết bài này, tôi cố gắng thêm .Wait()
và nó làm việc! Vì vậy, đây sẽ làm:
var connection = new HubConnection("http://localhost:32986/");
var hub = connection.CreateHubProxy("MessageHub");
connection.Start().Wait();
hub.Invoke("SendMessage", "", "");
Tùy chọn thứ ba: 'ContinueWith'. Về cơ bản, đây là cách nó được thực hiện ở phía máy khách, vì vậy nó bổ sung thêm một chút nhất quán giữa JS và C# Usages. – Corey