2015-11-25 19 views
8

Yelkenlerdeki olayları modellemek için bir nodejs uygulamasına abone olmaya çalışıyorum. İştesails.io.js - nodejs - Resourceful PubSub model olaylarını almadı

var socketIOClient = require('socket.io-client'), 
    sailsIOClient = require('sails.io.js'); 

var io = sailsIOClient(socketIOClient); 

io.sails.url = 'http://localhost:1337'; 

io.socket.on("agent", function(event) { 
    console.log(event); 
}) 

io.socket.get("/agent", function(resData, jwres) {}) 

istemci (nodejs) bağlayan yelkenler sunucudaki çıktı tümüne bir bağlantı olduğunu: İşte benim kodudur

https://gist.github.com/CiscoKidxx/e5af93ebcc24702ba4f8

Benim anlayış olduğunu ben oluşturduğunuzda Yeni ajan, değişiklikleri listeleyen bir console.log (event) tetiklemelidir. Bu gerçekleşmiyor. Script başladığında "artık yelkenlere bağlı" oluyor. Düşüncesi olan var mı? Yukarıdaki sunucu tarafında kod parçacığı geri aramasında bir çağrı Agent.publishCreate göstermiyor

Agent.create({ 
    syncToken: token, 
    owner: user.id 
}).exec(function (err, newAgent) { 
    Agent.publishUpdate(newAgent.id, {syncToken: newAgent.syncToken}); 
+0

"Aracı" modelinde nasıl değişiklik yapıyorsunuz? Eğer doğrudan veritabanına değişiklikler yaparsanız '.publishUpdate()' yi kullanmanız gerekir. Bkz. Http://sailsjs.org/documentation/reference/web-sockets/resourceful-pub-sub/publish-update –

+0

Kullanıcı, aracı her zaman yeni kullanıcıyla ilişkilendirerek ve ilişkilendirerek yeni bir ajan yapıyorum UserController.js Bu kodun bir kısmını OP'mde ekledim. – CiscoKidx

cevap

6

ziyade bir : Burada

benim benim UserController yeni ajan oluşturmak için çağrıdır Yayınlama.

Anladığım kadarıyla, publishCreate yalnızca planları kullanırken otomatik olarak tetiklenir - ancak yukarıda Agent.create gibi programlı çağrılar için tetiklenmez.

Yayınlamadan yayınlamayı değiştirmeGönderen yayınlaCreate, içeriğinize göre düzeltebilir.