2012-10-26 26 views
5

Tôi đang phát triển ứng dụng android nơi người dùng có thể cạnh tranh trong một số loại trận đánh. Về phía máy chủ, tôi cần nhận được yêu cầu từ người dùng để bắt đầu một trận chiến, và sau đó, sử dụng một số thuật toán, chọn đối thủ thích hợp nhất cho anh ta. Trong một trận chiến tôi cũng cần phải gửi thông báo cho đối thủ cạnh tranh về hành động của đối phương.Hiểu biết bỏ phiếu dài: khách hàng (android) và máy chủ (asp net)

Vì vậy, có vẻ như tôi cần thực hiện bỏ phiếu dài trên máy chủ của mình. Câu hỏi của tôi là:

  1. Phía máy chủ. Tôi đang sử dụng máy chủ mvc asp.net. Tôi đã có một cái nhìn tại khuôn khổ SignalR và nó có vẻ là những gì tôi cần. Tuy nhiên, chỉ vì tôi mới đến thăm dò ý kiến ​​lâu dài, tôi đã không hiểu các nguyên tắc nội bộ của nó về công việc. Vì vậy, tôi cần giải thích về cách sử dụng khung này, hoặc làm thế nào để thực hiện bỏ phiếu dài một số cách khác.

  2. Phía máy khách. Theo tôi hiểu, các yêu cầu bỏ phiếu dài hơi khác với mô hình "yêu cầu phản hồi" chuẩn, vì vậy tôi cũng tự hỏi làm thế nào để thực hiện các yêu cầu này ở phía máy khách.

Tôi đang mong chờ bất kỳ giải thích nào về các chủ đề mà tôi đã mô tả.

+0

Check-out: http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx Nó cho bạn thấy cơ bản và một bản demo làm việc. Tôi cũng tin rằng SignalR sẽ là tuyệt vời cho mục đích của bạn, và nó không phải là khó sử dụng! – Sindre

Trả lời

4

Điều này có thể không phải là câu trả lời bạn đang tìm kiếm, nhưng tại sao bạn muốn đi cho bỏ phiếu dài . bạn có thể thực hiện loại hình "pull" bỏ phiếu cho loại thông báo này NẾU bạn chỉ đang bỏ phiếu khi người dùng tham gia vào các trận đánh.
Thời lượng pin này cũng sẽ được lưu. Khi trận chiến bắt đầu, bắt đầu một dịch vụ nền, cuộc thăm dò ý kiến ​​của máy chủ mỗi 2-3 seconds (hy vọng thời gian chờ là 2-3 giây là chấp nhận được). Và thông báo cho người dùng tương ứng. Sau đó dừng dịch vụ khi trận chiến kết thúc.
Việc này sẽ dễ thực hiện hơn nhiều.
Nhưng nếu bạn cần thông báo ngay lập tức, bạn có thể sử dụng Google Cloud Messaging Service (đó là một hình thức bỏ phiếu dài). Để biết thêm về cách thức hoạt động, xem this

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