I think a quick PoC should answer your questions, but here is what I think
-


> Still wondering, if it would be significantly slower than plain GWT-RPC?

No reason for it to be slower than regular RPC. Thinking about it, you
should be able to use the regular RPC payload wrapped in a JSONP style
method call. This should make it work as good as regular RPC. I don't see
any other overheads.

One thing I must definitely make sure first, if this can be used together
> with all important frameworks I plan to use in the future (will e.g.
> gwt-log)...

You will have to confirm it, but it should work. You are not changing the
interface for RPC, so I see no reason for other frameworks to stop working.

--Sri


On 17 June 2010 03:49, Chris Lercher <[email protected]> wrote:

> That was fast - awesome post. It sounds feasible, and I'm considering
> to use it. Still wondering, if it would be significantly slower than
> plain GWT-RPC?
> The sending limit of 2kB Client->Server will be enough for at least
> most of my queries - I must still evaluate, if it's enough for
> absolutely all of them (or if I can split the others easily).
>
> One thing I must definitely make sure first, if this can be used
> together with all important frameworks I plan to use in the future
> (will e.g. gwt-log)...
>
> Thanks a lot for your answer!
> Chris
>
> On Jun 16, 10:53 pm, Sripathi Krishnan <[email protected]>
> wrote:
> > Just did some digging in, and I *think* it is possible with some
> > restrictions. The restrictions being -
> >
> >    - No support for request headers
> >    - Reduced error handling. For example, a 404 cannot be detected
> >    easily...
> >
> > The basic idea is to use DeRPC infrastructure because it already returns
> > JSON.. and try to override the RequestBuilder class so that the
> > communication channel is a <script> tag instead of a XHR.
> >
> > *Client Side changes*
> >
> >    1. Inject a custom RpcRequestBuilder via
> >    RemoteServiceProxy.setRequestBuilder(). Lets call it
> JSONPRpcRequestBuilder
> >    2. In JSONPRpcRequestBuilder.doCreate(..) method, return a custom
> >    RequestBuilder. Lets call it JSONPRequestBuilder.
> >    3. JSONPRequestBuilder class does all the heavy lifting. Override
> > *all*public methods. The serialized RPC data is available to this
> > class, so you
> >    just need to URL encode it and construct a url
> >    4. Then just use built in JSONP classes to actually make the request
> >    5. You'd have to write an adaptor between RequestCallback (from
> >    RequestBuilder) and AsyncCallback<T> (from JsonpRequestBuilder).
> >    6. Not sure how you'd typecast to the correct response object though.
> >    Perhaps you may have to leverage the deRpc infrastructure - since it
> already
> >    consumes JSON objects in its response.
> >
> > *Server side changes*
> > This should be straighforward. The payload is present in a url parameter.
> > Use RPC class to decode the request, invoke the method and get the data.
> > Again, it would make sense to use deRpc as the starting point - since you
> > need to return JSON.
> >
> > There may be unforeseen problems, but I think it is possible to get it
> > working. And I guess there are advantages to it as well, you can truly
> share
> > you GWT services and no longer worry about cross domain issues.
> >
> > --Sri
> >
> > On 17 June 2010 01:21, Chris Lercher <[email protected]> wrote:
> >
> >
> >
> > > Hi Sri,
> >
> > > I mean of course, that there would have to be a component (e.g.
> > > Servlet) on the server side, that re-translates the get request, and
> > > then calls the RemoteServlet (or something underlying), as if a usual
> > > GWT-RPC request had been issued. Se we would basically use JSONP as a
> > > tunnel.
> >
> > > [The defense against CSRF would have to be done using a separate
> > > technique, but let's forget about that for a moment.]
> >
> > > Chris
> >
> > > On Jun 16, 9:42 pm, Sripathi Krishnan <[email protected]>
> > > wrote:
> > > >  No, it won't.
> >
> > > >    1. GWT RPC exclusively uses POST. JSONP uses a <script> tag, which
> is
> > > >    essentially a GET request. You can't make a POST request using a
> > > script tag.
> > > >    2. RPC adds custom http headers to the request (X-GWT-Permutation,
> or
> > > >    something like that). You cannot setup custom http headers using a
> > > script
> > > >    tag, or anyother html tag.
> >
> > > > Because of these two, RPC cannot be wrapped in a JSONP call.
> >
> > > > The restrictions on the URL length are not that prohibitive. GWT
> > > supported
> > > > browsers allow atleast 2KB, with the newer ones allowing more. That
> > > usually
> > > > is sufficient for most RPC calls.
> >
> > > > --Sri
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Google Web Toolkit" group.
> > > To post to this group, send email to
> [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<google-web-toolkit%[email protected]><google-web-toolkit%2Bunsubs
> [email protected]>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-web-toolkit?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Web Toolkit" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-web-toolkit%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-web-toolkit?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to