N
N
Nils222012-07-05 11:57:48
C++ / C#
Nils22, 2012-07-05 11:57:48

Who has tried Protobuf, Thift, Avro?

It is necessary to implement communication between the mobile client and the server. There are two options for implementing client-server communication:
1. HTTP. the client acts as a web client and communicates with the server by exchanging JSON. Apache2 or Nginx is running on the server - the simplest implementation
2. TCP. the client and the server communicate with a binary stream serializing the transferred object using Protobuf/Thift/Avro. on the server, you need to implement your own small TCP server - a little more complicated, but more interesting
. The second option is chosen. If anyone has experience with Protobuf/Thift/Avro, can you tell us about the difficulties of working with them?
Server side = Ubuntu server + MongoDB + CGICC (CGI will be written in C++) + Nginx or Apache. Perhaps CGI will work as an Nginx or Apache module.

Answer the question

In order to leave comments, you need to log in

4 answer(s)
J
jov, 2012-07-05
@jov

Right now I'm developing a client-server application and tend to communicate via websockets. Let me explain why - I have seen too many cantors in my life where access to the Internet is organized through an http proxy, so trying to minimize the number of clients that are cut off because of such an organization, an http-based solution was chosen.

S
Solver, 2012-07-05
@solver

Used protobuf with Java. As a netty server. The client is also Java. Excellent result.

V
VBart, 2012-07-05
@VBart

The Nginx module for accessing MongoDB will probably allow you to bypass the intermediate CGICC for most queries.

D
dborovikov, 2012-07-06
@dborovikov

I also advise you to look at Zeroc ICE. Regarding the protobuf and the like, the main problem is the need to regenerate the code. Well, non-text protocols are harder to debug. If I were you, I would take the JSON over HTTP option. I don’t recommend taking CGI, because you won’t get anything outstanding in terms of speed (did I understand correctly that you want to write an optimal application?)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question