2015-11-11 21 views
6

Tôi đã thử nghiên cứu điều này, nhưng không tìm thấy nhiều âm thanh tương tự với nội dung tôi cần triển khai. Tóm lại, chúng tôi sẽ chạy một trang web ASP trên một máy chủ sẽ được truy cập bởi khách hàng. Lý tưởng nhất, chúng tôi có một chức năng mà chúng tôi muốn khởi tạo khi bắt đầu phiên của người dùng và dừng khi phiên kết thúc. Trong khi phiên đang diễn ra, chức năng này gửi và nhận tin nhắn thông qua giao tiếp socket, có nghĩa là chúng ta cần truy cập các chức năng gửi/nhận của lớp này từ các trang để di chuyển thông tin. Cách tốt nhất để giải quyết vấn đề này là gì?Làm cách nào để chạy một tác vụ liên tục trên Máy chủ ASP.Net?

+1

FWIW, với tất cả những ai bỏ phiếu này, tôi nghĩ đây là một câu hỏi hoàn toàn hợp lệ. Nó (hiệu quả) có một câu trả lời đúng, và nó được hỏi rất rõ. Vấn đề duy nhất có thể xảy ra với nó là tiêu đề hơi khó hiểu và dường như nó mô tả một vấn đề khác với vấn đề thực sự được hỏi. –

Trả lời

6

Nhìn vào SignalR. Đó có lẽ là những gì bạn muốn. "Trung tâm" của nó có hiệu quả những gì bạn đang tìm kiếm để quay lên trên bắt đầu phiên, và quay xuống khi người dùng biến mất. Nó có một thư viện JS phía máy khách tự động chọn phương thức kết nối tốt nhất có sẵn (ví dụ: websockets> server-sent-events> long-polling), và nó cho phép bạn gửi thư từ máy khách đến máy chủ, và từ máy chủ cho khách hàng.

http://www.asp.net/signalr

Một cách khác mà tôi đã chơi xung quanh với trong quá khứ là XSockets:

https://xsockets.net/

Nó tương tự như SignalR ở nhiều khía cạnh, nhưng nó không phải là miễn phí.

+0

Đã xem xét điều này và tôi tin rằng đây là những gì chúng tôi đang tìm kiếm. Cảm ơn bạn! – JtHa77

2

Thật khó để nói từ mô tả của bạn, bạn có muốn giao tiếp với trình duyệt của khách hàng qua ổ cắm không? Hay bạn đang cố gắng giao tiếp với một số dịch vụ khác thông qua ổ cắm?

Ứng dụng web không phù hợp lý tưởng cho các loại hành động xác định. Rất khó cho máy chủ web biết liệu khách hàng có thực sự đóng trình duyệt của họ hay không. Trong hầu hết các trường hợp, các phiên chỉ đơn giản là hết thời gian sau một khoảng thời gian không hoạt động (hơn 20 phút trong hầu hết các trường hợp). Vì vậy, bạn không thể biết một cách đáng tin cậy khi phiên người dùng thực sự đã kết thúc.

Để đầu nó đi, có một số trường hợp cạnh mà Session_End sẽ không kích hoạt. Ví dụ: nếu nhóm ứng dụng tái chế thì sự kiện Session_End sẽ không hoạt động. Đây có thể không phải là một vấn đề, vì nếu hồ bơi ứng dụng tái chế các kết nối khác của bạn cũng sẽ tái chế, nhưng nó vẫn là một vấn đề cần lưu ý.

Cuối cùng, các ứng dụng web không có ý định chạy dài.

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