Mang đến cho bạn hành trang là Kiến thức và Kinh nghiệm

Lựa chọn chủ đề bạn quan tâm

Cùng nhau thảo luận về các vấn đề

Hãy theo dõi chúng tôi nếu bạn thấy bổ ích

  1. Hỏi đáp IT
  2. Hỏi nhanh

Web ASP.Net thời gian thực với SignalR

6.png

2005, chúng ta làm quen với AJAX. Browser dùng JavaScript gửi request lên server. Server trả về và browser tự động cập nhật nội dung cần làm mới mà không cần phải reload lại cả trang web. Nếu một web site cần hiển thị trong thời gian thực hoặc gần như vậy đồ thị lên xuống của các mã cổ phiếu. Chúng sẽ nghĩ đến lập trình để browser đều đặn gửi yêu cầu lấy giá cổ phiếu mới nhất từ web server -> Cơ chế pooling. 

Nếu số lượng browser đồng thời cùng truy cập đến hàng nghìn, thì web server sẽ phải phục vụ rất vất vả cho dù chỉ có một vài mã cổ phiếu thay đổi điểm, những vẫn phải trả lời và gửi trả tất cả các mã cổ phiếu. Thay vì để client hỏi server (pooling) liên tục một cách mù quáng. Tại sao không để server nếu có thay đổi sẽ báo lại cho client, và sẽ chỉ gửi dữ liệu cần thiết để client xử lý (notification). Ngày càng nhiều ứng dụng web cần áp dụng cơ chế này, ví dụ Twitter, LiveScore, Stock Trading, chat…

SignalR là một thư viện lập trình do 2 thành viên của đội phát triển ASP.net Microsoft phát triển. SignalR cho phép lập trình viên tạo kênh liên lạc giữa server và client theo cơ chế notification. Trong dự án ASP.net chỉ cần bổ xung thư viện SignalR server lập trình bằng C#, còn tại browser dùng thư viện javascript SignalR client.

SignalR là gì

SignalR là 1 thư viện  lập trình do 2 thành viên của đội phát triển ASP.net Microsoft phát triển giúp xây dựng các ứng dụng web sử dụng tương tác thời gian thực giữa server và client theo cơ chế notification.

Mô hình bình thường của web là client gửi request đến server, nhưng giờ ta có 1 cách thức nữa để tương tác: server “push” trực tiếp dữ liệu về client, theo thời gian thực. Ngoài ra, mô hình này cũng giúp ta xây dựng ứng dụng bất đồng bộ lên đến hàng nghìn kết nối 1 lúc với máy chủ.

Nó hoạt động như thế nào

Có 4 giao thức mà lần lượt signalR sẽ sử dụng, tùy theo từng trường hợp (sự hỗ trợ từ server và client):
WebSockets (chỉ chạy trên server ASP.NET 4.5 / IIS 8)
Server Sent Events
Forever Frame
Ajax Long Polling

Trong đó, cách 4 là cách thường dùng trong những trường hợp thế này từ trước đến giờ. Cách 1 WebSockets mình chưa được thử do điều kiện không cho phép :)

Đầu tiên Client sẽ gửi request đến cho server, rồi server tùy tình hình sẽ gửi trả lại giao thức phù hợp. Ví dụ như IIS 6 thì chẳng bao giờ cần thử WebSockets vì có bao giờ hỗ trợ đâu. Client nhận được sẽ tiến hành “thử” kết nối đến server, khi tạo được kết nối rồi sẽ duy trì nó.

Bài sau mình sẽ hướng dẫn chi tiết cách sử dụng SignalR trong một dự án ASP.Net
Câu trả lời

- Bạn đã sẵn sàng thảo luận về chủ đề này. Hãy bấm "Viết bình luận", bạn có thể lựa chọn sử dụng tài khoản Facebook hoặc Google++

- Vì sự phát triển của cộng đồng CNTT/CNPM tại Việt Nam!

Unknown user
No responses yet

Từ khóa tìm kiếm

Câu trả lời mới nhất

Tin tuyển dụng