Protobuf over HTTP

1,797 views
Skip to first unread message

mvbaffa

unread,
Nov 24, 2010, 5:54:58 AM11/24/10
to Protocol Buffers
Hi,

I have a Flex 4 client and I want to make it talk to a WCF/JSON
Service. I have read that protobuf-net fill the WCF part of my
communication. I hope that some actionscript protobuf project can do
the actionscript part.

Sorry about asking this, maybe this is a basic question but I could
not find in documentation the answer.

What is the channel used by Protobuf ???

- It uses sockets ???
- How can I send information with Protobuf using and HTTP tunnel.

Do you have any reference of a real example sending and receiving
information using, including HTTP protocol.

Thanks in advance.

Pavel Shramov

unread,
Nov 24, 2010, 6:16:28 AM11/24/10
to mvbaffa, Protocol Buffers
On Wed, Nov 24, 2010 at 02:54:58AM -0800, mvbaffa wrote:
> Do you have any reference of a real example sending and receiving
> information using, including HTTP protocol.
Search mailing list for 'http'. It was discussed numerious times already.

For example I'm using protobuf over http (with actionscript too).
Nothing difficult, just set propert Content-Type and be happy
Pavel

Marc Gravell

unread,
Nov 24, 2010, 7:27:45 AM11/24/10
to mvbaffa, Protocol Buffers
Note that the protobuf-net *inside WCF* is going to be largely .NET/WCF specific.

If you want to talk cross-platform, vanilla HTTP would be preferable, or alternatively just transfer a `byte[]` or `Stream` in your regular web-service tools of choice.

(note also: MTOM may be helpful if your toolset supports it at both ends)

If you are going HTTP, note that it is pretty easy to hook into MVC: http://marcgravell.blogspot.com/2010/06/extending-aspnet-mvc-with-custom.html

Marc (protobuf-net)


--
You received this message because you are subscribed to the Google Groups "Protocol Buffers" group.
To post to this group, send email to prot...@googlegroups.com.
To unsubscribe from this group, send email to protobuf+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.




--
Regards,

Marc

mvbaffa

unread,
Nov 24, 2010, 8:41:01 AM11/24/10
to Protocol Buffers
I will look for the threads, Thank you.

I have a huge legacy in WCF/JSON and WCF/WsHttpBinding. I need to make
it work with Flex. I have already used Fluorine but I would like to
use protobuf now for my services.

I intend to use protobuf-net in the server and protobuf-actionscript3
in the client. This is the first time I use protobuf. I need an
example, specially in Flex. If I use in the server a WCF/protobuf-net
how could I call in ActionScript this service.

To be frank I still do not understand how to configure protobuf. How
do I define the endpoints in Flex using the URLRequest,
HttpService ???

Pavel and Marc, please, can you send some code so that I can test the
Flex and WCF.

Thanks in advance

Marc Gravell

unread,
Nov 24, 2010, 12:01:04 PM11/24/10
to mvbaffa, Protocol Buffers
As yet, there is no single common RPC standard for use with protobuf. Protobuf-net hacks itself into WCF by swapping out some WCF guts, but while that will work with WCF-to-WCF it won't make sense to flex. That is why I suggested just sending a byte-array, since this is easily represented by most platforms (either as base-64 or MTOM). Of course you then need to deal with the byte-array at each end, but that is not usually a problem.

Marc

mvbaffa

unread,
Nov 24, 2010, 2:28:16 PM11/24/10
to Protocol Buffers
I supposed I could send information from Flex using ProtoBuf-
Actionscript and a WCF Service using a ProtoBufSerializationBehavior,
from protobuf-net, could receive and deserialize the information. In
that case I would need only to make avaiable the same services I
already have with a diferent behaviour configuration.

Is this is a correct assumption ????

This way I can make, almost automatically, everything that is already
working for Javascript to work for Flex/Air. That's why to use
protobuf-net in the server is so important.

The problem is to make Protobuf work for actionscript. I can already
compile my .proto in .as classes. What I need is a simple getting
started to make Flex send and receive protobuf packages.

Is there anyone that can publish a simple code to send and receive
protubuf in actionscript ???

Thanks in advance.

On Nov 24, 3:01 pm, Marc Gravell <marc.grav...@gmail.com> wrote:
> As yet, there is no single common RPC standard for use with protobuf. Protobuf-net hacks itself into WCF by swapping out some WCF guts, but while that will work with WCF-to-WCF it won't make sense to flex. That is why I suggested just sending a byte-array, since this is easily represented by most platforms (either as base-64 or MTOM). Of course you then need to deal with the byte-array at each end, but that is not usually a problem.
>
> Marc
>
> > For more options, visit this group athttp://groups.google.com/group/protobuf?hl=en.- Hide quoted text -
>
> - Show quoted text -

Marc Gravell

unread,
Nov 24, 2010, 6:50:26 PM11/24/10
to mvbaffa, Protocol Buffers
That all depends on how "ProtoBuf-Actionscript" encodes the payload. I know nothing about that, so can't really comment.


On 24 November 2010 19:28, mvbaffa <mvb...@gmail.com> wrote:
pposed I could send information from Flex using ProtoBuf-
Actionscript



--
Regards,

Marc

mvbaffa

unread,
Nov 25, 2010, 5:01:12 AM11/25/10
to Protocol Buffers
Thanks Marc,

Just one more question.

Can I use protobuf-net for RPC Services ????
If Yes can these services be written and driven by WCF services, with
WsHttpBinding or TCPBinding ???

Thanks again,

On Nov 24, 9:50 pm, Marc Gravell <marc.grav...@gmail.com> wrote:
> That all depends on how "ProtoBuf-Actionscript" encodes the payload. I know
> nothing about that, so can't really comment.
>

Marc Gravell

unread,
Nov 25, 2010, 8:24:57 AM11/25/10
to mvbaffa, Protocol Buffers
WCF can provide RPC, and protobuf-net can elbow it's way inside WCF *for some scenarios*. One option here is simply with some WCF configuration changes:
It isn't specific to any particular binding - but works best for bindings that are happy with binary - my /preferred/ binding here is basicHttpBinding with MTOM enabled.

But : any other RPC mechanism that allows binary transports should be usable in some way or another. At the simplest level, an HTTP post with a binary payload, or a simple socket server (if you are happy to wrap your own dispatcher on the end).

Marc

--
You received this message because you are subscribed to the Google Groups "Protocol Buffers" group.
To post to this group, send email to prot...@googlegroups.com.
To unsubscribe from this group, send email to protobuf+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.




--
Regards,

Marc
Reply all
Reply to author
Forward
0 new messages