2014-09-01 16 views
9

Tôi đang sử dụng tính năng bỏ phiếu dài với SignalR. Tôi đã thấy rằng phiên người dùng kết thúc (ASP.NET Session_End đang được gọi) ngay sau khi trang web dựa trên singalr làm cho yêu cầu /signar/ping (as shown in this screenshot). Tôi đã đi qua http://www.asp.net/signalr/overview/signalr-20/hubs-api/handling-connection-lifetime-events nhưng không thể tìm ra câu trả lời rõ ràng sau câu hỏi.Sử dụng lệnh/signalr/ping khi sử dụng tính năng bỏ phiếu dài

  1. Làm thế nào để giữ phiên người dùng ASP.net còn sống từ trang web khách hàng của tín hiệu?
  2. Mục đích thực sự của/ping là gì?
  3. Thời gian cho cuộc gọi/ping này có thể định cấu hình không?

Trả lời

13

Toàn bộ mục đích của yêu cầu/signalr/ping là giữ cho các phiên ASP.NET tồn tại. Bằng cách đưa ra yêu cầu trong khoảng thời gian thường xuyên ngắn hơn thời gian chờ của phiên, phiên sẽ không bao giờ hết hạn vì máy chủ sẽ đặt lại thời gian chờ trên mỗi yêu cầu.

Trong trường hợp vận chuyển bỏ phiếu dài, điều này có thể không cần thiết vì SignalR sẽ buộc một cuộc thăm dò dài mới ít nhất cứ sau 110 giây cho cấu hình mặc định. Mặc dù vậy, SignalR sẽ thực hiện yêu cầu ping mỗi 5 phút theo mặc định bất kể vận chuyển đang được sử dụng. Khoảng thời gian 5 phút này đủ nhỏ để xử lý thời gian chờ phiên mặc định 20 phút của ASP.NET.

Bạn có thể thay đổi khoảng thời gian ping 5 phút đến một giá trị tùy chỉnh trong lệnh gọi $.connection.hub.start như vậy:

// Configure SignalR to ping the server every minute 
$.connection.hub.start({ pingInterval: 60000 })//... 

Giá trị mặc định là pingInterval 300000 mili giây (5 phút). Bạn có thể tắt ping bằng cách đặt pingInterval thành không.

+0

cảm ơn halter73, đó chính xác là những gì tôi đang tìm kiếm. –

+0

@ halter73, bạn có nói rằng việc bỏ phiếu dài sẽ tiếp tục tồn tại phiên ASP.NET và do đó, nếu nó xảy ra thường xuyên hơn thời gian ping, thì ping là không cần thiết? – Mark

+2

@Mark Right. Ping không cần thiết với việc bỏ phiếu dài vì vận chuyển đó đã gửi các yêu cầu thường xuyên, nhưng SignalR sẽ gửi yêu cầu ping. – halter73

Các vấn đề liên quan