替换 AJAX 路由(用 jquery 中的 $.Ajax 调用)是否不好,例如:
- 获取/动物
- 获取/动物/[id]
- 发布/动物
使用 socket.io 事件(事件绑定在客户端和服务器上,因此客户端可以有响应):
- 发射(“动物:阅读”)
- 发射(“动物:阅读”,{id:asdasd})
- 发射(“动物:写”,动物数据)
还是我应该“只”使用 socket.io 将数据推送到客户端?
[编辑] 如果我的 POST 路由不使用套接字 io,我可能会看到一个问题。问题是我不能轻松地使用客户端的套接字来广播数据:
服务器:
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 个套接字。