爲了進行高效的服務器端解析,我正在直接調查瀏覽器JavaScript環境的BSON解決方案。這個想法是通過二進制websockets來利用整個ASCII空間。有什麼建議麼?是瀏覽器提供的二進制JSON JavaScript庫嗎?
(任何建議的NodeJS歡迎以及)
爲了進行高效的服務器端解析,我正在直接調查瀏覽器JavaScript環境的BSON解決方案。這個想法是通過二進制websockets來利用整個ASCII空間。有什麼建議麼?是瀏覽器提供的二進制JSON JavaScript庫嗎?
(任何建議的NodeJS歡迎以及)
這可能是不完整的,但該項目排隊的目標,以你想要的東西:https://github.com/muhmi/javascript-bson它看起來並不像直接編碼到通過WebSocket發送最有用的類型數組。
對於它的價值,似乎MongoDB的團隊現在有一個支持的Javascript 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:
我不知道你爲什麼會想這樣做?只需將JSON傳遞給客戶端/瀏覽器/從客戶端/瀏覽器傳遞,然後按照服務器上的意願轉換爲BSON。 –
JavaScript實際上對低級操作沒有多少支持 - 就像那些允許BSON比JSON更高效的操作一樣 - 所以你可能不得不使用Flash ... –
@ChrisPietschmann:這會將我限制爲HTTP並且例如JSON中的整數必須被解析,而不是直接分配的可能性。 (打算在服務器上的負載也較小) –