如何在Socket中订阅id以外的属性为真的实例室.io / SailsJS

How to subscribe to an instance room where an attribute besides id is true in Socket.io/ SailsJS?

本文关键字:真的 属性 实例 SailsJS io Socket id      更新时间:2023-09-26

如何使套接字订阅实例室,其中ID以外的一个属性为真?我的情况是,我有一个通知模型,我希望用户订阅,但只有当所有者属性等于用户的id。

这是我尝试过的:

Notification.subscribe(req.socket , { owner: req.session.User.id } );

在notification的情况下,客户端应该订阅其自己登录的用户id的实例室。它看起来像这样:

Notification.subscribe( req.socket, req.session.User.id );

然后,当创建通知时,您可以使用'publishUpdate'方法将通知发布到特定的房间:

Notification.publishUpdate(ownerId, notification);

其中ownerId等于应该接收通知的用户id

因此,例如,如果一个帖子上的"喜欢"在like控制器中创建了一个通知,然后该通知被发布(使用带有帖子所有者id的publishUpdate),然后帖子所有者将在客户端接收通知。客户端可以订阅使用:

socket.on('notification', cometMessageReceivedFromServer);

假设模型名称为"Notification"。