2015-07-30 13 views
29

Tôi đang viết một máy chủ cho trò chơi iOS. Trò chơi được bật dựa và thời gian duy nhất máy chủ cần đẩy thông tin cho khách hàng là thông báo về di chuyển của đối phương.Sự khác biệt giữa các ổ cắm web và bỏ phiếu dài cho máy chủ trò chơi theo lượt

Tôi rất tò mò nếu có ai có thể nhận xét về hiệu suất và dễ dàng thực hiện sự khác biệt giữa việc sử dụng ổ cắm web và bỏ phiếu dài. Ngoài ra, nếu tôi sử dụng websockets, tôi chỉ nên sử dụng nó để nhận thông tin và gửi yêu cầu POST cho mọi thứ khác hoặc tất cả thông tin liên lạc phải thông qua websocket?

Ngoài ra, có bất kỳ điều gì cần bổ sung để cân nhắc giữa các ổ cắm web và bỏ phiếu dài nếu tôi quan tâm đến việc tạo một ứng dụng web không?

+3

Bạn cũng có thể sử dụng Notifications Push to thông báo cho khách hàng của dữ liệu mới. Tôi tin rằng để có hiệu quả hơn (pin khôn ngoan), hơn hai giải pháp của bạn xem xét. – pteofil

+1

cách thức hoạt động nếu người dùng vẫn còn trong ứng dụng? – acidic

+2

Bạn cũng được thông báo trong ứng dụng khi bạn nhận được thông báo đẩy. – pteofil

Trả lời

73

Thăm dò dài là gì?

enter image description here Biến thể của kỹ thuật bỏ phiếu truyền thống và cho phép mô phỏng thông tin từ máy chủ đến máy khách. Với việc bỏ phiếu dài, khách hàng yêu cầu thông tin từ máy chủ theo cách tương tự như bình chọn bình thường.

  • Nếu máy chủ không có bất kỳ thông tin có sẵn cho khách hàng, thay vì gửi một phản hồi trống, máy chủ giữ yêu cầu và chờ đợi đối với một số thông tin có sẵn.
  • Khi thông tin có sẵn (hoặc sau một thời gian chờ phù hợp), một phản hồi hoàn chỉnh sẽ được gửi cho khách hàng. Máy khách thường sẽ sau đó ngay lập tức yêu cầu lại thông tin từ máy chủ để máy chủ hầu như luôn có sẵn yêu cầu chờ đợi rằng có thể sử dụng để phân phối dữ liệu để phản hồi sự kiện.

    Trong ngữ cảnh web/AJAX, việc bỏ phiếu dài còn được gọi là Lập trình sao chổi.

gì về Websockets?

enter image description here WebSockets cung cấp kết nối liên tục giữa máy khách và máy chủ mà cả hai bên có thể sử dụng để bắt đầu gửi dữ liệu bất kỳ lúc nào.

  • Khách hàng thiết lập kết nối WebSocket thông qua quá trình được gọi là làm bắt tay WebSocket. Quá trình này bắt đầu với ứng dụng khách gửi yêu cầu HTTP thông thường đến máy chủ.
  • Tiêu đề nâng cấp được bao gồm trong yêu cầu này thông báo cho máy chủ rằng khách hàng muốn thiết lập kết nối WebSocket.

Kết luận:

Nếu có nhu cầu giao tiếp thời gian thực bạn rất tốt có thể lựa chọn WebSockets.

Nhưng tại Long Polling:

Một kết nối được tổ chức mở giữa client web và máy chủ web để khi máy chủ có thông tin mới nó có thể đẩy nó cho khách hàng. Yêu cầu đó sau đó được hoàn thành. Một yêu cầu mới sau đó được thực hiện giữa máy khách và máy chủ và sau đó chờ cập nhật khác từ máy chủ. Kết nối TCP tương tự thường mở liên tục trong nhiều yêu cầu do HTTP/1.1 giữ liên kết.

Tài liệu tham khảo và cân nhắc khác:

PubNub long polling vs sockets - mobile battery life

What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?

long polling in objective-C

Websocket Introduction

Websocket Vs Long Polling

Using Websockets in Apps

Websocket Application

PushTechnology-Long Polling

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