(私はRESTFulに慣れていません。私の概念が間違っている場合は修正してください)
RESTFulアーキテクチャでは、すべてのアクションをURLにマッピングします。 [記事を投稿]をクリックすると、実際にはURL _http://example.com/
_および一部のデータ_action=post&content=blahblah
_である可能性があります。
投稿したいがWebページ全体を更新したくない場合は、JavaScriptのXMLHTTPRequestを使用できます。投稿してコンテンツを取得し、ページのdivに挿入します。これらのアクションはすべて非同期です。
次に、WebSocket
という名前のものがあり、それはラッパー_socket.io
_です。クライアントとサーバー間の通信に「メッセージ」を使用します。 「投稿」をクリックすると、クライアントはsocket.send(data)
を呼び出し、サーバーのclient.send(data)
を待ちます。それは魔法です。しかし、URLはどうですか?
自分自身を繰り返さなくても、2つのモデルを両方使用することは可能ですか?言い換えれば、すべてのアクションにはURLがあり、それらの一部はリアルタイムで(socket.ioによって)ユーザーと対話できます。
また、これを行う必要がありますか?非常にインタラクティブなWebプログラム(ゲームなど)では、RESTFulはまだ意味がありますか?
REST over http。POSTにマップするアクションのハンドラを定義しています。GETは通常、エンティティに対する更新とクエリを指します。理由はまったくありません。両方のコンテキストで使用できるこれらのCRUD操作の汎用バージョンのハンドラーを定義するだけではありません。一般的に、これを行う方法は、リアルタイム転送に「ルート」の概念を導入し、それらをマッピングして戻すことです。同じCRUDハンドラに。
セッションがあり、同じACLを課すことができます。
+---------------------------------+
| |
| BROWSER |
| |
+--+--^-------------------+---^---+
| | | |
| | | |
+--v--+---+ +--v---+---+
| | | |
| HTTP | | SOCKET.IO|
+--+---^--+ +--+---^---+
| | | |
+--v---+------------------v---+---+
| |
| ROUTING/PUBSUB |
+-+--^-------+--^-------+--^------+
| | | | | |
+-v--+--+ +-v--+--+ +-v--+-+
| | | | | |
| USERS | | ITEMS | |ETC |
+-------+ +-------+ +------+
ENTITY CRUD HANDLERS
私 これを私のブログに投稿しました 最近:
WebSockets用のCRUD APIの設計
Weld を構築するとき、RESTとWebSockets(Socket.io)の両方を使用しています。WebSocketに関する3つの観察:
私の解決策:
"AppServer/user/create"
。