次のような AJAX ルート (jquery から $.Ajax で呼び出される) を置き換えるのは悪いことですか?
- GET /アニマルズ
- /animals/[ID] を取得
- 投稿 /animals
socket.io イベント (クライアントが応答できるようにクライアントとサーバーにバインドされたイベント) の場合:
- emit("アニマルズ:読み取り")
- emit("animals:read", {id:asdasd})
- emit("animals:write", animalData)
または、socket.ioを「のみ」使用して、データをクライアントにプッシュする必要がありますか?
[編集] POST ルートに socket io を使用しないと、1 つの問題が発生する可能性があります。問題は、クライアントのソケットを簡単に使用してデータをブロードキャストできないことです。
サーバ:
on("animals:write", function(data){
saveAnimal(req.data)
socket.broadcast(...)
emit("animals:write", writenAnimal)
})
VS
app.post(function(req,res){
saveAnimal(data)
// cant broadcast :(
res.send(201,writenAnimal)
})
確かに、他のいくつかのリクエストでクライアントにデータをプッシュするので、すべてのクライアントには少なくとも 1 つのソケットがあります。