Horizon介紹—無需編寫后端代碼骑祟,就能構建實時應用

Horizon是由RethinkDB團隊開發(fā)的一款開源實時后端框架声怔,它旨在讓開發(fā)者們快速搭建可拓展的實時Web應用态贤。Horizon于2016年5月17日正式發(fā)布

Horizon

Horizon包括以下特性:

  • Horizon服務端 醋火,由Node.js和RethinkDB構成悠汽,支持數(shù)據(jù)持久化箱吕,實時數(shù)據(jù)流,輸入驗證柿冲,用戶認證和權限管理

  • Horizon客戶端茬高,開發(fā)者可以用于前端應用,將JSON數(shù)據(jù)存儲到數(shù)據(jù)庫中假抄,執(zhí)行請求怎栽,訂閱在線更新等

  • **Horizon命令行 - hz
    **
    ,它會生成項目模板宿饱,啟動一個本地的Horizon開發(fā)服務器熏瞄,幫助你部署應用到云端

  • GraphQL支持 ,Horizon的服務端會由一個GraphQL適配器來驅動你的React或Relay應用谬以,這將使你在一開始就不必寫后端代碼强饮,它不會在v1發(fā)布,但是會在項目啟動后盡快發(fā)布为黎。

由于Horizon基于RethinkDB邮丰,所以它的集群能力得到了保障,具體測評可以參見這篇文章battle-tested clustering铭乾。同時柠座,和Meteor的Galaxy類似,Horizon也提供了托管服務Horizon Cloud片橡,現(xiàn)在處于內測階段,不出意料的話淮野,功能會包括RethinkDB和前端應用的一系列的監(jiān)控捧书,價格肯定不會比小VPS低啦。

Horizon和Firebase的不同

  • Horizon開源骤星,你可以將它部署到任何你想要的地方
  • Horizon使你能夠搭建復雜的企業(yè)應用经瓷,因為你由一個完整功能的數(shù)據(jù)庫
  • 借助于RethinkDB,Horizon能暴露出比起簡單文檔同步更有用的服務

Horizon和Meteor的不同

  • Horizon更加靈活洞难,Horizon可以輕松集成任何前端框架舆吮,并且服務端也可以集成Node.js, Python, Ruby等或者Rails, Express, Koa等框架。而Meteor集成這些東西需要黑魔法队贱。
  • Horizon只位于數(shù)據(jù)庫和前端之間色冀,Meteor是一個全棧的同構的體驗。
  • 在架構上也不一樣柱嫌,Meteor基于LiveQuery和MongoDB's oplog锋恬,它不能高效地處理大量操作。但是RethinkDB的LiveQuery功能是在數(shù)據(jù)庫中的编丘,這使得我們由更豐富的流處理与学,擴展起來也更加方便彤悔,因為數(shù)據(jù)庫層面就有所有必要信息。

驚鴻一瞥

首先索守,全局安裝horizon晕窑。

$ npm install -g horizon

然后,你可以使用hz init創(chuàng)建模板項目卵佛。接著通過hz serve --dev啟動Horizon服務器和RethinkDB實例杨赤。RethinkDB需要安裝好并且要能在PATH目錄訪問。

$ hz init myapp
$ hz serve myapp --dev
# localhost:8181 has a demo page on it
# Horizon client connections can be made to ws://localhost:8181/horizon# The horizon client library is served from localhost:8181/horizon/horizon.js

Horizon的代碼看上去如下:

// Connect to horizon
const horizon = Horizon();
const todoCollection = horizon('todo_items');

const todoApp = document.querySelector('#app')

// Function called when a user adds a todo item in the UI
todoCollection.watch().subscribe( todos => {
  const todoHTML = todos.map(todo =>
    `<div class="todo" id="${todo.id}">
       <input type="checkbox" ${todo.done ? 'checked' : ''}>
       ${todo.text} -- ${todo.date}
     </div>`);
  todoApp.innerHTML = todoHTML.join('');
});

更多信息請參見 Getting Started guide级遭。

社區(qū)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末望拖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子挫鸽,更是在濱河造成了極大的恐慌说敏,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丢郊,死亡現(xiàn)場離奇詭異盔沫,居然都是意外死亡,警方通過查閱死者的電腦和手機枫匾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門架诞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人干茉,你說我怎么就攤上這事谴忧。” “怎么了角虫?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵沾谓,是天一觀的道長。 經(jīng)常有香客問我戳鹅,道長均驶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任枫虏,我火速辦了婚禮妇穴,結果婚禮上,老公的妹妹穿的比我還像新娘隶债。我一直安慰自己腾它,他們只是感情好,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布燃异。 她就那樣靜靜地躺著携狭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪回俐。 梳的紋絲不亂的頭發(fā)上逛腿,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天稀并,我揣著相機與錄音,去河邊找鬼单默。 笑死碘举,一個胖子當著我的面吹牛,可吹牛的內容都是我干的搁廓。 我是一名探鬼主播引颈,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼境蜕!你這毒婦竟也來了蝙场?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤粱年,失蹤者是張志新(化名)和其女友劉穎售滤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體台诗,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡完箩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年兄淫,在試婚紗的時候發(fā)現(xiàn)自己被綠了万皿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挣输。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡扬蕊,死狀恐怖,靈堂內的尸體忽然破棺而出伸眶,到底是詐尸還是另有隱情肛冶,我是刑警寧澤览徒,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布事哭,位于F島的核電站呐舔,受9級特大地震影響,放射性物質發(fā)生泄漏慷蠕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一食呻、第九天 我趴在偏房一處隱蔽的房頂上張望流炕。 院中可真熱鬧,春花似錦仅胞、人聲如沸每辟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渠欺。三九已至,卻和暖如春椎眯,著一層夾襖步出監(jiān)牢的瞬間挠将,已是汗流浹背胳岂。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留舔稀,地道東北人乳丰。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像内贮,于是被迫代替她去往敵國和親产园。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內容