valor todas son que name los lista las etiquetas cuáles atributos atributo javascript socket.io sails.js publish-subscribe

javascript - todas - Las velas js se suscriben a los cambios del modelo delimitados por el atributo groupid



todas las etiquetas de html y sus atributos pdf (1)

Tengo un modelo llamado Groupfeed que se parece a esto

module.exports = { schema:true, attributes: { groupid: { model:''groups'', required:true }, postid: { model:''post'', required:true }, objectid: { model:''objects'', required:true }, } };

En el lado del cliente, puedo suscribirme al modelo de Groupfeed usando

io.socket.get(''/groupfeed'')

que se realiza automáticamente por la api del plan y luego

io.socket.on(''groupfeed'',function(obj){console.log(obj)})

me daría actualizaciones sobre los cambios del modelo cuando publico en el backend usando

Groupfeed.publishCreate({id:4,groupid:6,postid:2,objectid:1})

Lo que quiero :-

Quiero que un cliente se suscriba solo a las fuentes de grupo de un groupid en particular. Por ejemplo: el usuario X puede suscribirse a las fuentes de grupo de groupid 1 (Nota: Un modelo de grupo almacena la membresía de usuario para un grupo)

O algo así como esta llamada imaginaria:

io.socket.get(''/groupfeed?groupid=5'')

De modo que cuando llamo a publishCreate con un groupid: 5, solo las personas suscritas a groupid 5''s groupfeed podrían obtener una actualización


Es mejor que crees habitaciones diferentes para grupos.

¡CÓDIGO SIN PRUEBA! Crear un controlador: NotificationsController.js

module.exports = { subscribe: function(req, res) { // Get groupId of user by your method ..... ..... var roomName = ''group_'' + groupId; sails.sockets.join(req.socket, roomName); res.json({ room: roomName }); } }

En algún lugar puedes crear una notificación:

var roomNameForGroup = ''group_'' + groupId; sails.sockets.blast(roomNameForGroup, {id:4,groupid:6,postid:2,objectid:1});

Y en su opinión:

io.socket.on(''connect'', function(){ io.socket.get(''/notifications/subscribe'', function(data, jwr){ if (jwr.statusCode == 200){ io.socket.on(data.room,function(obj){ console.log(obj); }); } else { console.log(jwr); } }); });

No puedo probar el código en este momento, pero parece viable.