默認情況下,當您請求模型時,您將訂閱它。如果您使用藍圖,這是默認設置。沒有必要明確訂閱。
但是,如果您正在製作自己的控制器方法。您將需要訂閱套接字請求以在服務器端手動記錄更新。
假設你有一個User
模型...
爲了有一個插座被告知所有created
事件致電User.watch(req)
對於updated
和destroyed
呼叫User.subscribe(req, records)
這裏是一個我的用戶控制器的副本項目,我已經在處理訂閱的線上發表評論。希望它可以幫助....
UserController = {
find: (req, res) ->
User.watch(req) // Subscription
if req.params.all().id
query = User.findOne(id: req.params('id'))
else
query = User.find()
query.exec((err, records) =>
return res.send(500, err) if (err)
User.subscribe(req, records) // Subscription
return res.json(records)
)
create: (req, res) ->
User.create(req.body).exec((err, record) =>
return res.send(500, err) if (err)
User.publishCreate(record, record.toJSON()) // Subscription
return res.json(record.toJSON())
)
update: (req, res) ->
User.update(req.params('id'), req.body).exec((err, records) =>
return res.send(500, err) if (err)
return res.notFound() if _.isEmpty(records)
record = _.first(records)
User.publishUpdate(record.id, record.toJSON()) // Subscription
return res.json(record.toJSON())
)
destroy: (req, res) ->
User.destroy(req.params('id')).exec((err, records) =>
return res.send(500, err) if (err)
return res.notFound() if _.isEmpty(records)
record = _.first(records)
User.publishDestroy(record.id) // Subscription
return res.send(204, null)
)
me: (req, res) ->
User.findOne(
id: req.session.user_id
).done((err, user) =>
User.subscribe(req, user) // Subscription
return res.json(user)
)
}
module.exports = UserController