0

我正在使用套接字流通过使用以下代码将数据发送给登录用户

var ss = require('socketstream'); .... .... ss.api.publish.user('userId', content);

但 ss.api.publish 未定义是我收到的错误。

我哪里错了。请指教。

4

1 回答 1

2

发布给用户的API是:

发送给用户 一旦用户通过身份验证(这基本上意味着他们的会话现在包含 req.session.userId 的值),您可以通过将 userId(或 ID 数组)传递给 ss 的第一个参数来直接向用户发送消息.publish.user 如下:

// in a /server/rpc file
ss.publish.user('fred', 'specialOffer', 'Here is a special offer just for you!');

重要提示:当用户退出您的应用程序时,您应该调用 req.session.setUserId(null, cb) 以防止浏览器接收发送给该 userId 的未来事件。注意:此命令仅影响当前会话。如果用户通过其他设备/会话登录,这些将不受影响。

以上摘自描述 socketstream pub/sub api 的原始文档。

如您所见,您需要提供比您想象的多一个参数。也就是说,因为在客户端您需要订阅消息通道才能获取消息。在上面的示例中,您需要在客户端代码中执行此操作:

ss.event.on('specialOffer', function(message){
  alert(message);
});
于 2014-03-13T13:03:10.933 回答