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

Randy Abernethy updated THRIFT-2398:
------------------------------------

    Attachment: 0001-updated-nodejs-hello-example.patch

This patch adds updates for the thrift/lib/nodejs/examples hello example.

> Improve Node Server Library
> ---------------------------
>
>                 Key: THRIFT-2398
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2398
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Node.js - Library
>    Affects Versions: 0.9.2
>         Environment: all
>            Reporter: Randy Abernethy
>         Attachments: 0001-nodejs-server-and-option-cleanup.patch, 
> 0001-updated-nodejs-hello-example.patch
>
>
> Improve Node Server Library
> =======================
> Background
> ----------------
> In the last 7 months Node.js has gone from one server constructor:
> •     createServer()
> to seven, adding:
> •     createSSLServer()
> •     createMultiplexServer()
> •     createMultiplexSSLServer()
> •     createHttpServer()
> •     createHttpsSSLServer()
> •     createWebServer()
> there are really only two implementations:
> •     createMultiplexSSLServer()
> •     createWebServer()
> Several of these servers have undocumented options and share options objects 
> with other libraries.
> Proposal
> -------------
> 1.    Remove all of the create signatures except these three:
> o     createServer()
> o     createMultiplexServer()
> o     createWebServer()
> with createServer() implemented by createMultiplexServer(). All signatures 
> will support optional multiplexing and optional SSL/TLS. Eliminate no present 
> functionality and maintain signature compatibility in the three signatures 
> preserved.
> 2.    Document and standardize all server options and parameters with notes 
> describing any deprecated features being preserved for backward compatibility.
> Motivation
> -------------
> The dispersion of create methods makes it harder for developers to know which 
> server to use and leads to diffusion in the way that options and features are 
> provided. This also complicates testing. Reducing the servers to the two 
> currently supported end point transports (TCP and HTTP) will enforce 
> standardization and simplify adoption. Now is the time to address these 
> issues before the new create signatures show up in a released version.
> Approach to Options 
> ----------------------------
> Presently the non-web server options objects may have transport and protocol 
> properties. Undocumented key and cert properties are used to enable the 
> options object to be passed to the Node.js tls and https createServer() 
> methods. This approach requires Apache Thrift options to be visible to the 
> Node.js library methods and vice versa. A better approach might be to place 
> Node.js tls options in a tlsOptions object which is itself a property of the 
> server options object. This will allow any tlsOptions to be passed through to 
> Node.js without concerns for conflicts on the Node.js or Apache Thrift side, 
> now or in the future. The presence of a tlsOptions object can also be used to 
> enable SSL/TLS in the two server implementations rather than having separate 
> functions.
> Would like to know what others think about this.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to