這幾天搞清楚風帆插座的工作,但我沒有運氣讓它在我的風帆項目上工作。找不到風帆插座工作
所以我有一個叫做Events的模型。
在客戶端的JavaScript
var socket = io.socket;
socket.on('connect',function socketConnected(){
console.log("connected");
socket.get('/events/getData',function getEvents(events){
addEvents(events);
});
socket.on('events',function eventFound(eventData){
console.log('something happend');
addEvents(eventData);
});
});
而且對服務器端事件的控制器。
'create': function(req,res){
var eventsData = u.getParams(req);
Events.create(eventsData,function created(err,createdEvent){
Events.publishCreate(createdEvent);
console.log("created");
return res.send(200);
});
},
'getData': function(req, res) {
Events.find().exec(function foundEvent(err, event) {
if (err) return next(err);
Events.subscribe(req.socket, event);
res.send(event);
});
因此,我預計,當我張貼的事件對象http://localhost:1337/events/create的
"socket.on('events',function eventFound(eventData){"
應該已經觸發了吧?我只是不能讓它觸發:(有什麼我做錯了這個呢?因爲我敢肯定,我有點誤解了此套接字的概念。
是的我用.watch()仍然嘗試過,但最終在創建控制器上我添加了sails.sockets.blast(createdEvent);而且這個工作正如我所需要的那樣:D謝謝你的迴應和解釋 – campin