【问题标题】:Node.JS notifications on my PHP based website我基于 PHP 的网站上的 Node.JS 通知
【发布时间】:2012-09-15 07:27:31
【问题描述】:

我正在用 PHP 开发一个网站。现在,我想简单地添加一个通知系统。想象一下它就像 Facebook 友谊:当我收到好友请求时,我也会收到通知。

我当然知道一点 Node.JS 和 Socket.IO,但棘手的部分似乎是 PHP 的实现。

到目前为止我的想法是:

1. user sends friend request
2. in my PHP code, I cURL my Node.JS service: "/notification?friendid=9634963478"
3. user with id 9634963478 should get a notification

我面临的问题是:

如何在 Node.js 上使用相同的凭据“登录”?所以基本上除了我之外没有其他用户可以收到消息?

我不是在寻找代码,而是从某位大师那里获得的“启迪”。

【问题讨论】:

    标签: php node.js socket.io


    【解决方案1】:

    在您的 nodejs 应用程序中使用相同的会话存储后端并传递 cookie,它必须位于相同的子域上,例如 msg.example.com,其中 cookie 由 .example.com 上的 php 层设置

    看看express.session——这是一个使用redis的例子:

          var RedisStore = require('connect-redis')(express);
    
          app.use(express.session({
            store: new RedisStore({
              host: cfg.redis.host,
              db: cfg.redis.db
            }),
            secret: 'foobar'
          }));
    

    关于使用会话的视频: http://nodetuts.com/tutorials/13-authentication-in-express-sessions-and-route-middleware.html

    【讨论】:

    • 所以你的意思是我也应该使用 redis 在 PHP 端处理会话?
    • 我不知道是否有办法让您的 nodeapp 使用 PHP 的内置会话处理程序。我会将您的 PHP 应用程序转换为在 redis 中存储会话数据,然后您的节点应用程序可以使用相同的存储。 simplapi.wordpress.com/2012/04/13/…
    • 太好了,这正是我想要的!所以基本上我应该做的是“简单地”让 PHP 处理会话(使用 redis),然后在我需要使用 Node.js 发送这些消息时访问它们?
    • 是的,如果您的所有应用程序都使用同一个会话存储,您可以在它们之间进行单点登录。这确实需要您为 cookie 使用子域或相同域。
    • 是的,我明白了!下一步将是找出如何向特定用户发送“私人通知”。好吧,我想这超出了这个问题的范围,所以,谢谢!
    猜你喜欢
    • 2015-08-10
    • 2015-01-08
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多