socket.io 脚本上出现奇怪异常 ETIMEDOUT 的 Openshift redis 墨盒

Openshift redis cartridge with strange exceptions ETIMEDOUT on socket.io script

我有一个 socket.io 节点脚本 运行ning 作为聊天服务器。我在本地服务器上 运行ning 没问题,此后尝试将其移至 openshift。

我使用以下墨盒使其正常工作 - https://github.com/smarterclayton/openshift-redis-cart/issues

在 运行 连接本地版本的服务器时,在连接到 openshift redis 时,我在 运行 脚本后恰好 127 秒出现奇怪的超时。

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: Redis connection to <server> failed - connect ETIMEDOUT
    at RedisClient.on_error (/path/node_modules/redis/index.js:196:24)
    at Socket.<anonymous> (/path/node_modules/redis/index.js:106:14)
    at Socket.emit (events.js:95:17)
    at net.js:441:14
    at process._tickCallback (node.js:442:13)

我以前见过 events.js:72,但通常是当我尝试 运行 一个节点脚本时,该脚本已经 运行 在该端口上运行。

非常确定脚本本身没问题,因为当我将 redis 服务器换成我的本地服务器时,它会在那里待几天并且工作正常。

所以我的问题是:当 redis 托管在 openshift 上时,为什么我的 socket.io 脚本会在恰好 127 秒后自行终止?

您是否正在使用 rhc port-forward 命令以便连接到 OpenShift 上的 redis?否则该端口不公开可用。