私は、node.jsがバックにあり、HTML5キャンバスがフロントエンドにあるブラウザーベースのゲームを開発しています。通信にはWebSocketを使用します。
私の計画は、クライアント側でビジネスイベントを生成することです(例: "finishJob")。クライアントは最新の関連情報をすべて保存します。
ここでのMVCパターンでは、モデルはPlayer、ビューはHTML5 Canvasですが、2種類のコントローラーが必要です。
私の質問:これは実行可能なオプションですか?はいの場合、これに類似したデザインパターン、またはこの種のアーキテクチャに関する記事はありますか?命名規則(「コントローラー」、「ハンドラー」、「チャネル」...)はありますか?
Peers-または堅牢なObject-Networksを必要とする複雑なアプリを使用するアプリケーションを作成している場合は、イベント駆動型アーキテクチャ。
最も簡単なアプローチは、 Addy Osmoni によって設計されたMediator Patternを実装することです。
これにより、次のような記述が可能になります。
// core.js
mediator.subscribe('newMemberAdded', function newMemberAddedHandler(id){
this.membersModule.add(id);
});
.。
// membersUI.js
$('#addMember').click(function(){
...
mediator.publish('newMemberAdded', 998);
...
});
これにより、モジュールに必要なCouplingは、他のモジュールと通信するためのmediator
への参照のみです。
メディエーターの使用は非常に強力であり、モジュールをより多くしますLiftable(疎結合)、ただし、いくつかの規則を考慮する必要がありますEDAの開発中:
'log'
、'start'
、'change'
、'notice'
すべては、コマンドまたは発生した何かとして見ることができます。 ing共役を追加して、これを回避できます('starting'
)さらに、メディエーターをWebWorkerまたはSharedWorkerにバインドして、ブラウザータブ(など)間で状態を共有し、ワーカーをよりクリーンなカップリングのためにサーバー上のEventHub。
この投稿はその場しのぎのことですが、始めるのに十分だと思います!