2

我正在开发一个使用 CodeIgniter 框架开发的项目。我的项目有很多用户交互,比如帖子、评论和其他应该实时的通知。

到目前为止,我已经尝试通过两种方式获取这些通知:
1. 我尝试使用 AJAX 构建一种数据拉取系统,但我认为这会在我的服务器上造成大量带宽浪费
2. 我已经设置一个带有 socket.io 服务器的 node.js,它只监听一些套接字事件并将通知推送回用户。例如,当添加评论时,我有一个将所有新评论从 5 秒拉到 5 秒的函数,我有一个 socket.emit(); 将评论信息推送到 node.js 和 node.js 将通知推送到所有连接的套接字。

我不确定 node.js + PHP 是否是一份好工作(但是,到目前为止我了解到的是 node.js 有利于长轮询和更少的资源成本)。

你认为女巫建筑更好吗?

4

2 回答 2

4

使用带有 Socket.IO 的 Node.js 将任何实时数据发送给您的客户。

是的,您可以将它与基于 CodeIgniter 的站点结合使用...输出动态页面和获取客户端数据不必彼此有任何关系。

Socket.IO 的问题不在于 Socket.IO 本身……而在于您构建应用程序的方式。根据需要发送消息。如果您在连接时需要带有 5 条评论的初始发出,请执行此操作。

于 2012-09-22T13:55:19.717 回答
1

一旦你完成了所有的 Nodejs + CI 设置,接下来你要担心的是验证 Nodejs 中已经在 CI 端进行身份验证的用户。通过使用 CI 和 Nodejs 都可以访问的自定义会话存储来克服这个问题的一种方法。

我选择 Redis 而不是 Memcache 用于自定义会话存储,因为您不想在服务器重新启动时丢失所有现有会话数据。对于 CI https://gist.github.com/zhouming/3672207和 Nodejs,您可以轻松搜索、安装和配置 Redis。

请参阅此处了解更多有用信息http://ericterpstra.com/2013/03/use-redis-instead-of-mysql-for-codeigniter-session-data

于 2013-08-16T09:57:49.623 回答