Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I am developing an Adobe Air multiplayer game for iPad.
It is turn based and not realtime. It is like checkers game.
I want to use a client server model.
I have found 2 options to connect to server so far: socket connection and http requests

My question is:
Is the bandwidth requirement for socket connection vs http requests different?

I need the game to work with very low speed internet connections

share|improve this question
    
A HTTP request is technically also a socket connection, just with another protocol on top. –  Philipp Jun 25 '13 at 7:04
add comment

2 Answers

Adobe Air Socket

The Socket class enables code to establish Transport Control Protocol (TCP) socket connections for sending and receiving binary data.

TCP

Transmission control protocol, a protocol developed for the internet to get data from one network device to another. Uses a retransmission strategy to insure that data will not be lost in transmission.

HTTP

the Hypertext Transfer Protocol - provides a standard for Web browsers and servers to communicate. The definition of HTTP is a technical specification of a network protocol that software must implement. HTTP is an application layer network protocol built on top of TCP.


What this means is that HTTP requests module in Adobe Air is an implementation of the HTTP protocol, which uses the same sockets and runs on top of TCP. If you create your own binary protocol using sockets, you can save some bandwidth. HTTP is a textual protocol that is very verbose and most of the time even human readable. That adds certain overhead that you can avoid.

share|improve this answer
add comment

A HTTP request is also a socket connection. It just adds additional overhead in form of a HTTP header. So when bandwidth and low latency is a concern for you, you should rather use your own socket-based protocol.

There is, however, an advantage of using HTTP: It usually works in restrictive network environments. High secure LANs, like you encounter them at workplaces, usually have firewalls which prohibit any direct socket connections to the outside and only allow communication with the internet via a HTTP proxy. Using HTTP might be the only way to communicate with the outside world in such a scenario.

So when you target the demographic of office workers at companies with a bring-your-own-device policy who want to play a bit when the boss isn't looking during their breaks, supporting HTTP might be a good idea.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.