2011-09-24 11 views
18

W celu wydajnego analizowania po stronie serwera zajmuję się rozwiązaniem BSON bezpośrednio dla środowiska javascript przeglądarki. Pomysł polega na wykorzystaniu całej przestrzeni ASCII za pomocą binarnych websockets. Jakieś sugestie?Czy dostępna jest binarna biblioteka JSON javascript dla przeglądarek?

(Wszelkie sugestie są mile widziane nodejs również)

Patrz także: http://bsonspec.org/

+2

Nie jestem pewien, dlaczego chcesz to zrobić? Wystarczy przekazać JSON do/z klienta/przeglądarki, a następnie przekonwertować na BSON, jak chcesz na serwerze. –

+0

JavaScript naprawdę nie ma większego wsparcia dla manipulacji na niskim poziomie - jak te, które pozwalają BSON być bardziej wydajnym niż JSON - więc prawdopodobnie musiałbyś używać Flasha ... –

+2

@ChrisPietschmann: to ograniczyłoby mnie do HTTP i np liczby całkowite w JSON muszą zostać przeanalizowane, zamiast możliwości bezpośredniego przypisania. (Zamiarem jest również mniejsze obciążenie serwera) –

Odpowiedz

6

To może być niekompletna ale cel linii projektowej, co chcesz: https://github.com/muhmi/javascript-bson To nie wygląda która koduje bezpośrednio do tablic maszynowych, które byłyby najbardziej użyteczne przy wysyłaniu przez WebSocket.

11

Na co warto, to wydaje się, że zespół MongoDB teraz obsługiwany projekt Javascript BSON:

https://github.com/mongodb/js-bson

nie jestem ekspertem z biblioteki, ale projekt wnosi do pracy zarówno w węźle i przeglądarkę. Poniżej znajduje się zmodyfikowany próbka z ich strony:

<head> 
    <!-- Originally https://raw.github.com/mongodb/js-bson/master/browser_build/bson.js --> 
    <!-- But downloaded and hosted locally --> 
    <script src="./bson.js"></script> 
</head> 
<body onload="start();"> 
<script> 
    function start() { 
    var BSON = bson().BSON; 
    var Long = bson().Long; 

    var doc = { 
     oid: bson().ObjectID(), 
     long: Long.fromNumber(100), 
     date: new Date(), 
     string: "js-bson sample", 
     obj: { 
     string: "Object within an object" 
     } 
    } 
    console.log("doc %o", doc); 

    // Serialize a document 
    var data = BSON.serialize(doc, false, true, false); 
    console.log("data %o", data); 

    // De serialize it again 
    var doc_2 = BSON.deserialize(data); 
    console.log("doc_2 %o", doc_2); 
    } 
</script> 
</body> 

poniżej są moje wyniki w Chrome:

enter image description here

+3

Tak, jest obsługiwane w przeglądarce, jest dostępna kompilacja przeglądarki: https://github.com/mongodb/js-bson/tree/master/browser_build Można również zainstalować przez altana przy użyciu "bower install bson --save" – arcseldon

+0

@SamuelNeff - To po prostu nieprawda. Nie tylko jest oficjalnie obsługiwany, ale widziałem, że był używany w więcej niż kilku projektach. Ja też to wykorzystałem. – JSON

+0

@JSON, Kiedy opublikowałem to prawie dwa lata temu, był to cytat z samej witryny. Napisano "Parser Bson JS/C++ dla węzła, używany w macierzystym sterowniku MongoDB". Od tego czasu zmienili się i wyraźnie stwierdzili, że obsługują przeglądarkę. –

Powiązane problemy