Archived

This forum has been archived. Please start a new discussion on GitHub.

Should choose HTTP or ICE?

Hi,

I'm recently building a network application with massively multiple users online.

I am choosing the protocol to use between clients and server.

Using ICE would help we reduce the programming time, but HTTP seems to be more mature. And HTTP does not need to keep the TCP connection all the time, which might be good for holding more uses online at the same time.

What do u think about it? :)

Comments

  • Ice is quite mature. It has been around since early 2003, and we have many customers who run mission-critical software with hundreds of servers and tens of thousands of clients. So, as far as reliability is concerned, you shouldn't have any concerns.

    The Ice protocol is a lot more compact than HTML; depending on what type of data you are sending, you may realize substantial bandwidth savings with Ice.

    Ice does not keep connections open permanently. Instead, it uses a connection pool and transparently closes unused connections. (Check out the section on ACM in the manual for details.)

    I suggest you give Ice a try and write a client and server to gain some experience. Chances are that you'll be pleasantly surprised at how simple and easy it is to get going.

    Cheers,

    Michi.
  • ICE may be a good choice if everything is under your control
    : Server side and Client side. That is, it is up to you to choose the ICE protocol as your communication language.

    But if you have to talk to 3rd artifacts which are not ICE based, even you can use some sort of bridge, you may have to consider HTTP or other things.


    I once met this kind of choice. I like ICE and also think it is very efficient but eventually not take use it just for I have to talk to 3rd server which only supports HTTP protocol.


    OrNot
  • matthew
    matthew NL, Canada
    Its worth noting that the decision to use HTTP or Ice is not mutually exclusive. There is nothing in Ice that precludes talking with an HTTP client, or implementing parts of your server as an HTTP server.

    Personally, I think developing something complex such as an online game with HTTP would be akin to building a house with sticks and stones. Yes, you can do it, but why would you want to? HTTP is for document transfer, not distributed objects.
  • Hi, Matthew,
    In the scenario where I have to talk to a HTTP server, I want to use ICE's runtime as my client infrastructure , do you have any good idea?
    I once read a post in this forum which suggests to decouple some internal networking stuff such as connection management, thread pool management from the ICE protocol stack, which may be a solution to reuse part of ICE . But I remember that suggestion is refused for some reason.
    I will be glad to read more posts in your blog about cooperation between
    ICE and other protocol.

    Regards
    OrNot