0

ほとんどの Clojure 専門家は、Rich Hickey のアリのデモ ( http://gist.github.com/1093917およびhttp://blip.tv/clojure/clojure-concurrency-819147 ) を見たことがあると思います。同じアプリの分散バージョンを作成しようとする場合、ただし各ブラウザーが 1 つのアリを制御するブラウザーベースの場合、Clojure/ClojureScript から関数のトランザクションの性質を支援するものはありますか (クライアントで実行されたとbehave仮定) behave)? それとも、Clojure/ClojureScript の STM 機能は本当に分散使用を意図していないのでしょうか?

つまり、クライアント上で (3,2) にいて (3,3) に移動したい場合、クライアント (ブラウザー) の世界 (リッチの元のバージョンと同じように、少し古くなっている可能性があります)スレッドが少し古くなったこと) その正方形は空ですが、サーバーにリクエストを送信し、サーバーの世界でその正方形がいっぱいであることを教えてくれる ClojureScript の分散型 STM はありますか? いいえ、その正方形はいっぱいでしたその動きを元に戻す必要があるため、次の動きは再び (3,2) から開始する必要があります。リッチの元のプレゼンテーションでは、Clojure の STM 機能に組み込まれてすべて自動化されていました。しかし、分散されている場合、それはより明確にする必要がありますか、それともこれを行うために組み込まれている既存の機能はありますか?

そのようなものが Clojure/ClojureScript に組み込まれていない場合、より適した他のプラットフォームはありますか?

4

1 に答える 1

0

はい、これは Clojure (バックエンド用) と ClojureScript OR JavaScript (フロントエンド用) を使用して簡単に実行できます。

基本的に、クライアント js コードは websockets を使用して clojure サーバーに接続し、サーバー上では、各クライアントがアクセスするアトムにラップされた状態を持つことができ、各クライアントは接続された websocket を介して状態について更新されます...似たようなことをしますチャット Web アプリケーションで。

Websocket の場合、Alephを使用できます。

于 2012-10-11T04:12:22.917 に答える