2012-09-01 8 views
8

Właśnie zacząłem używać node.js, używam serwera węzła z sockets.io i muszę wysłać bufor bajtów do klienta.stream.io strumieniowe dane binarne

Rozumiem, że można to zrobić, najpierw tłumacząc bufor bajtowy na base64 i wysyłając go, a następnie tłumacząc go z powrotem po stronie klienta. ale zastanawiałem się, czy istnieje bardziej elegancki sposób przesyłania strumienia bajtów do klienta.

+1

Myślę, że jest to poprawna odpowiedź http://stackoverflow.com/a/24617425/950039. Prosimy o zaznaczenie, jeśli jesteś zadowolony, komentarz jeśli nie :) –

Odpowiedz

2

https://github.com/binaryjs/binaryjs może być rozwiązaniem. Podstawa 64 ma ~ 30% rozmiaru narzutu, więc jeśli będziesz musiał przesłać dużą ilość danych, stanie się to nieefektywne.

+1

Spojrzałem na binaryjs, ale nie mogę znaleźć sposobu, aby to działało z moim serwerem socket.io. Nie chcę zepsuć kodu, który napisałem już. – crimsonsky2005

1

Używanie binaryjs z socket.io jest bardzo trudne. Spróbuj deliveryjs

https://github.com/liamks/Delivery.js

który zapewnia środki komunikacji między klientami a serwerem poprzez socket.io.

Jednak ten moduł wykorzystuje także konwersję base64, co jest wadą.

+0

Ten link nie pomaga w ogóle. –

4

Socket.IO 1,0 Teraz obsługuje transferu danych binarnych. Proszę spojrzeć na here. Możesz użyć Blob, ArrayBuffer i File.

Powiązane problemy