You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Aron Sogor (JIRA)" <ji...@apache.org> on 2010/02/22 03:14:29 UTC

[jira] Updated: (THRIFT-518) as3/flash/flex generator

     [ https://issues.apache.org/jira/browse/THRIFT-518?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aron Sogor updated THRIFT-518:
------------------------------

    Attachment: as3.patch

Sorry for the delay, so is life.
Patch against latest in SVN.

Improvements over the original:
- inheritence fixed.
- server interface implemented.
- Full duplex HTTP transport for java and as3.

Full duplex?
Http 1.1 Chunk encoded. It allows to pen a single connection and send request chunck, at the same time reciveresponse chunck. 

Using oneway messages it is possible to have 2 service apis:
flash2java Service, with flash sending java reciving
java2flash Service, with java sending and a flash "server" reciving messages.

This method allows sending server events to the flash, without flash polling for it.

The missing part is union support, I will work on it on the future unless someone needs it faster and submits a patch.

> as3/flash/flex generator
> ------------------------
>
>                 Key: THRIFT-518
>                 URL: https://issues.apache.org/jira/browse/THRIFT-518
>             Project: Thrift
>          Issue Type: New Feature
>            Reporter: Dave Lerman
>         Attachments: as3.patch, TFullDuplexHttpClient.as, thrift_as3.diff, thrift_as3.diff
>
>
> There's been various mailing list discussions about ActionScript 3 support, but I didn't see an associated JIRA so I thought I'd create one.
> The goal would be to allow a Flash or Flex project to call a Thrift service as an alternative to Flash's built-in web services and RPC implementations.  A developer might want to use Thrift instead of SOAP, REST or AMF for it's code generation, strong typing, or for interoperability with existing Thrift-based services.
> The Flash code would look something like:
> {code}
> public function testFunction() {
>   var client:Service = new ServiceImpl(new TBinaryProtocol(
>          new THttpClient(new URLRequest("http://service.com")));
>   client.ping("hello world", handlePingResponse);
> }      
> private function handlePingResponse(response:String):void {
>   trace("RESPONSE: " + response);
> }
> {code}
> where Service is the generated Flash interface, ServiceImpl is the generated client which implements Service, and THttpClient is an implementation of TTransport.
> Note that Flash is a single-threaded environment so the call is necessarily asynchronous.
> The attached patch is a first-pass at an implementation.  It's basically a line-for-line partial port of the java lib and generator.  The lib contains a single protocol (TBinaryProtocol) and a single transport (THttpClient), along with a generator which generates the interface and client implementation (server implementation is skipped since this seems unlikely to be useful).  It still needs some work -- it's untested except for the specific thrift services we use internally, and needs documentation and cleanup.  I'm happy to do this work if there's general interest in adding as3 support - let me know.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.