2011-09-24 13 views
18

कुशल सर्वर साइड पार्सिंग के लिए मैं सीधे ब्राउज़र जावास्क्रिप्ट पर्यावरण के लिए एक बीएसओएन समाधान देख रहा हूं। विचार बाइनरी websockets के माध्यम से पूरे ASCII अंतरिक्ष का उपयोग करना है। कोई सुझाव?ब्राउज़र के लिए एक बाइनरी JSON जावास्क्रिप्ट लाइब्रेरी उपलब्ध है?

(कोई भी NodeJS सुझाव का स्वागत करते हैं और साथ ही कर रहे हैं) भी

देखें: http://bsonspec.org/

+2

मुझे यकीन है कि नहीं कर रहा हूँ तुम क्यों ऐसा करना चाहते हैं? बस क्लाइंट/ब्राउज़र से जेएसओएन पास करें और फिर सर्वर पर बीएसओएन में कनवर्ट करें। –

+0

जावास्क्रिप्ट में वास्तव में निम्न-स्तरीय हेरफेर के लिए बहुत अधिक समर्थन नहीं है - जैसे कि बीएसओएन जेएसओएन से अधिक कुशल होने की अनुमति देता है - इसलिए आपको शायद फ्लैश का उपयोग करना होगा ... –

+2

@ChrisPietschmann: यह मुझे HTTP तक सीमित कर देगा और उदाहरण के लिए जेएसओएन में पूर्णांक को सीधे असाइनमेंट की संभावना के बजाय पार्स किया जाना है। (इरादा सर्वर पर भी कम भार है) –

उत्तर

6

यह अधूरा हो सकता है लेकिन साथ परियोजना लाइन के लक्ष्य को आप क्या चाहते हैं: https://github.com/muhmi/javascript-bson यह की तरह नहीं दिखता जो सीधे टाइप किए गए सरणी को एन्कोड करता है जो वेबसॉकेट पर भेजने के लिए सबसे उपयोगी होगा।

11

क्या इसके लायक है के लिए, ऐसा लगता है कि MongoDB टीम अब एक समर्थित जावास्क्रिप्ट BSON परियोजना है:

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

मैं पुस्तकालय के साथ कोई विशेषज्ञ हूँ, लेकिन परियोजना दोनों नोड में काम करने का दावा और ब्राउज़र। नीचे अपनी साइट से एक संशोधित नमूना है:

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

नीचे Chrome में अपनी परिणाम हैं:

enter image description here

+3

हां, यह ब्राउज़र में समर्थित है, एक ब्राउज़र निर्माण प्रदान किया गया है: https://github.com/mongodb/js-bson/tree/master/browser_build इसके माध्यम से भी इंस्टॉल किया जा सकता है "बॉवर इंस्टॉल बीसन - सेव" का उपयोग करके बोअर – arcseldon

+0

@ सैमुएलनफ - यह बस सही नहीं है। न केवल यह आधिकारिक रूप से समर्थित है, लेकिन मैंने इसे दो से अधिक परियोजनाओं में उपयोग किया है। मैंने खुद भी इसका इस्तेमाल किया है। – JSON

+0

@ जेएसओएन, जब मैंने लगभग दो साल पहले पोस्ट किया था तो यह साइट से ही उद्धरण था। यह कहा गया "नोड के लिए एक जेएस/सी ++ बोसन पार्सर, मोंगोडीबी मूल चालक में प्रयोग किया जाता है"। तब से वे बदल गए हैं और विशेष रूप से बताते हैं कि वे ब्राउज़र का समर्थन करते हैं। –

संबंधित मुद्दे