On Wed, May 16, 2012 at 5:37 PM, Mattias Ernelli <[email protected]> wrote:
> I am working on a test system/framework using nodejs where I need to send
> binary data as strings in some circumstances.
>
> One part of the system is a webserver/reverse proxy that will either serve a
> static file or forward the request to an external server unless the request
> will be intercepted and processed by a remote hook. (Trying to simplify as
> much irrelevant information here ;), anyway the various parts of the system
> are either running as node instances and some may be running JS in rhino or
> in embedded webbrowsers.
>
> Anyway, I has chosen faye as the messaging framework to pass data between
> these subsystems so that means that data has to be representable as JS
> objects and be serializable as JSON strings.
>
> Now the web remote-hook works so that it registers itself in the main
> webserver over faye so that all requests matching the registred patterns
> will be forwarded to this remote-hook in a faye/bayeux message. Now the
> remote-hook will get inbound faye messages for these requests and the
> remote-hook will fetch them using HTTP or mock/stub them or manipulate them
> in any way before sending back the response over faye.
>
> The problem is when sending the entityBody back to the webserver process it
> can be binary such as images etc. By default node converts binary data
> chunks to utf8 and that fails. Base64 works but adds an overhead and also
> makes it harder to work with plain text data such as text/html or
> application/json, so i chosed "binary" as the documentation says is a valid
> string conversion except for this remark
> in: http://nodejs.org/api/buffer.html#buffer_class_buffer
>
> 'binary' - A way of encoding raw binary data into strings by using only the
> first 8 bits of each character. This encoding method is deprecated and
> should be avoided in favor of Buffer objects where possible. This encoding
> will be removed in future versions of Node.
>
> Its the last statement I didnt like, I have not successfully converted
> binary data to utf8 and back to binary so far, but "binary" obviously works
> as do "base64", will "binary" be removed or is it the documentation that
> tries to prevent "stupid" hacks.
>
> Binary data in JS strings has been used from time to time so its not new,
> but its of course browser hack since nowdays typed arrays are the way to go.
> But when serialising over the wire its nice to at least be able to crunch
> binary data as unicode.

This was brought up on the issue tracker recently:

https://github.com/joyent/node/issues/3246#issuecomment-5624432

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" 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/nodejs?hl=en?hl=en

Reply via email to