Không, SignalR là một sự trừu tượng hóa trên một kết nối. Nó cung cấp cho bạn hai mô hình lập trình qua kết nối đó (trung tâm và kết nối liên tục). SignalR có một khái niệm về vận tải, mỗi lần vận chuyển quyết định cách gửi / nhận dữ liệu và cách kết nối và ngắt kết nối.
SignalR có một vài phương tiện vận chuyển được xây dựng:
- WebSockets
- Sự kiện máy chủ đã gửi
- Khung mãi mãi
- Bỏ phiếu dài
SignalR cố gắng chọn kết nối "tốt nhất" được hỗ trợ bởi máy chủ và máy khách (bạn cũng có thể buộc nó sử dụng một phương tiện giao thông cụ thể).
Đó là cấp độ cao. Nếu bạn muốn xem cách vận chuyển được thực hiện, bạn có thể xem mã nguồn .
Ngoài ra còn có mã khách hàng cho mỗi lần vận chuyển:
https://github.com/SignalR/SignalR/tree/master/src/Microsoft.AspNet.SignalR.Client.JS
Nếu bạn đang hỏi về cách vận chuyển bỏ phiếu dài hoạt động cụ thể:
Nó sẽ gửi một yêu cầu ajax đến máy chủ đang chờ không đồng bộ để tín hiệu phản hồi. Khi có tín hiệu hoặc hết yêu cầu, nó sẽ trả về từ máy chủ và gửi yêu cầu khác và quá trình tiếp tục. (Tôi đã để lại một số chi tiết về cách khách hàng theo dõi những gì họ thấy để nó không bỏ lỡ tin nhắn)
Hy vọng rằng câu trả lời hầu hết các câu hỏi của bạn.