私たちのアプリでは、共同オンライン編集を可能にすることを検討しています。これは、マインド マップのような構造を作成するために JavaScript に大きく依存するグラフィック アプリケーションです。
最初の明白な候補は、WebSocket を使用することです。
ユーザーは、これらのマップを作成するためにサイトにアクセスします。独自のプロセスを開始するように見えるem-websocketを見てきましたが、
EventMachine.run {
EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 9876) do |ws|
そこにはコンテキスト情報があまりないようです。人々は同時に異なるマップを編集しているかもしれません! だから私の現在の推測は
- 編集中のマップごとに、新しい WebSocket サーバーが別のポートで開始されます。
これには WebSocket ライフサイクルの制御が必要になるため、そのようなサーバー
Thread
ごとに forを生成することを考えていました。WebSocket
#on map create/edit: Thread.new do EventMachine.run {
EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 9876) do |ws| .... end
人々はこのアプローチについてどう思いますか? これは合理的ですか?他の提案はありますか?ありがとうございました!