我有一个web应用程序,它运行在Windows 2008服务器机器上的IIS中的CakePHP框架上的PHP中。现在在节点和PHP之间使用Redis与会话共享
,这个应用程序是轮询每个连接的用户每6秒刷新屏幕的一部分,这是导致请求到IIS服务器的趋向,并拖慢整个系统时,Oracle数据库忙。
在试图解决这个问题,我想了解如何使用Node.js来解决这个问题,并使用推送通知。这种方式每6秒钟一次,Node会将通知推送给所有活动的浏览器客户端
我面临的问题是,我正在拨打的电话正在使用登录用户会话。 (调用数据库,一旦我得到数据,更新会话)。
我读过Redis可以成为一个解决方案,我已经看到posts explaining how to share the session。但有件事情我不明白尚未:
我怎么能登录用户的会话? 我应该迭代所有活动会话吗?
我想在节点创建setInterval
来查询数据库为每个登录的用户。
为什么没有你的PHP和浏览器通过网络套接字谈话,并有PHP推送数据到客户端,而不是客户端做池?我不熟悉PHP的抱歉,但在节点中,我们使用网络套接字,它很容易。我的意思是...那是什么websockets有。我猜测PHP应该也支持web套接字。这样,您可以将您的后端合并。 – sagie
@sagie在PHP中没有什么像'setInterval'。 PHP仅在用户发出请求时运行。否则,你需要一个cron或计划任务,当然,这也不会访问会话。 (并在窗口中的最短时间为5分钟) – Alvaro
确定了你,所以你可能不得不看看php如何将会话存储在redis中,并扩展Express Redis会话存储以读取该格式。问题是许多中间件喜欢在会话上写东西,所以你的扩展redis会话存储将不得不处理这个问题。 – sagie