我正在使用套接字流通过使用以下代码将数据发送给登录用户
var ss = require('socketstream'); .... .... ss.api.publish.user('userId',content);
但ss.api.publish未定义是我收到的错误。
我哪里错了。 请指教。
答案 0 :(得分:2)
发送给用户 一旦用户通过身份验证(这基本上意味着他们的会话现在包含req.session.userId的值),您可以通过将userId(或ID数组)传递给ss.publish的第一个参数来直接向用户发送消息。用户如此:
// 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);
});