[ 
https://issues.apache.org/jira/browse/THRIFT-518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12761242#action_12761242
 ] 

Dave Lerman commented on THRIFT-518:
------------------------------------

The AS3 implementation assumes that there is a web server listening for HTTP 
POSTs whose body contains a Thrift method call.  In my case, I'm using a Java 
Servlet that looks something like:

{code}
public class ThriftServlet extends HttpServlet {
  private Generated.Processor processor;

  public void init() {
    processor = new Generated.Processor(new InterfaceImplementor());
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response) {
    response.setContentType("application/x-thrift");
    OutputStream out = response.getOutputStream();
    processor.process(
      new TBinaryProtocol(new TIOStreamTransport(request.getInputStream())),
      new TBinaryProtocol(new TIOStreamTransport(out)));
    out.close();
  }
}
{code}

> 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: 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.

Reply via email to