放假前在Cnode社區(qū)看到了一篇關(guān)于HTTPS的分享,由于學(xué)了密碼學(xué)對(duì)于協(xié)議這個(gè)方面也比較感興趣,就進(jìn)去了乾胶,然后了解到了他們公司野狗,一個(gè)Baas服務(wù)平臺(tái)朽寞,注冊(cè)了一個(gè)賬號(hào)就沒(méi)細(xì)究了识窿。今天在郵箱里面收到他們公司新聞郵件,發(fā)現(xiàn)正式版發(fā)布了脑融。
說(shuō)說(shuō)他們
就我了解和看他們官網(wǎng)的簡(jiǎn)介喻频,確實(shí)有很多大牛,之前都是在大企業(yè)積累了很多的經(jīng)驗(yàn)肘迎,特別是他們HTTPS的研究甥温,讓我很是佩服锻煌。
他們好像比較強(qiáng)調(diào)實(shí)時(shí)應(yīng)用,我覺(jué)得他們的優(yōu)勢(shì)所在就是提供WebSocket長(zhǎng)連接姻蚓,因?yàn)橹皩W(xué)PHP通過(guò)韓老大的Swoole項(xiàng)目宋梧,對(duì)這個(gè)還是有點(diǎn)了解,就目前國(guó)內(nèi)除他家之外史简,好像還沒(méi)有提供這種WebSocket的服務(wù)商乃秀。
對(duì)于提供后端數(shù)據(jù)庫(kù)而言,比較類似的我還淺嘗輒止過(guò)APICloud圆兵,跟野狗比起來(lái)跺讯,野狗的優(yōu)勢(shì),還是那一點(diǎn)殉农,對(duì)于WebSocket封裝刀脏,當(dāng)然還有一些使用比較安全的協(xié)議啦。
開(kāi)始
官方JavaScript SDK
<script src="https://cdn.wilddog.com/js/client/current/wilddog.js"></script>
在官網(wǎng)看了一大堆例子超凳,視頻愈污,文檔,還不如一句代碼來(lái)得精簡(jiǎn)轮傍。
var ref = new Wilddog('https://wild-horse-0874.wilddogio.com/');
ref.set('{name:'leo'}');
//在后臺(tái)你就可以看到 name:leo 這樣的鍵值對(duì)暂雹,他們后臺(tái)數(shù)據(jù)庫(kù)基于JSON
小例子
上面的截圖,就是這個(gè)小栗子的后臺(tái)數(shù)據(jù)庫(kù)创夜。
Show me the code
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
<script src="https://cdn.wilddog.com/js/client/current/wilddog.js"></script>
</head>
<body>
<textarea style="width:400px; height: 300px" id="tx"></textarea>
<input type="text" placeholder="name" id="name">
<input type="text" placeholder="value" id="value">
<script>
var ref = new Wilddog('https://wild-horse-0874.wilddogio.com/');
var nameDom = document.getElementById('name');
var valueDom = document.getElementById('value');
document.onkeydown=function(event){
var e = event || window.event || arguments.callee.caller.arguments[0];
if(e && e.keyCode==13){ // enter 鍵
ref.child(nameDom.value).set(valueDom.value);
}
};
var tx = document.getElementById("tx");
ref.on("value", function(snapshot) {
console.log(snapshot.val());
tx.innerHTML = JSON.stringify(snapshot.val(), null, '\t');
});
ref.child('location/city').on('value', function(datasnapshot){
console.log(datasnapshot.val());
});
</script>
</body>
</html>
代碼很簡(jiǎn)單杭跪,沒(méi)有添加任何樣式,用了ref.child().set()
驰吓,ref.on()
涧尿,ref.child().on()
簡(jiǎn)而言之child
代表后代,數(shù)據(jù)庫(kù)有一個(gè)root
代表祖宗檬贰,set
就是設(shè)置姑廉,on
翻譯過(guò)來(lái)就是當(dāng)
,當(dāng)value
改變的時(shí)候,你就有事情(function)做了翁涤。
被其他事情打擾了桥言,把數(shù)據(jù)的讀寫(xiě)看完就不深入了∶匝總體來(lái)說(shuō)API還是挺簡(jiǎn)單限书,以后有實(shí)時(shí)系統(tǒng)的要求可以拿來(lái)用,最簡(jiǎn)單的就是做個(gè)聊天室吧章咧,官網(wǎng)好像提供了Demo倦西。
文檔地址
https://z.wilddog.com/web/crud
GoodBye!赁严!