使用 node.JS 和 Socket.IO 的路径和其他问题

Posted

技术标签:

【中文标题】使用 node.JS 和 Socket.IO 的路径和其他问题【英文标题】:path- and other problems using node.JS and Socket.IO 【发布时间】:2011-03-27 05:13:38 【问题描述】:

我在由 Windows 托管的 TurnkeyLinux 上的 VirtualBox 中使用 node.JS。我按照here 的说明进行操作。 node.JS 位于 /root/node 中。虽然我可以成功运行简单的示例,但我很难弄清楚某些事情,因为我通常不是 Linux 人。我想使用 socket.io。

    我使用 git 管理安装 node.JS 本身,并使用 Express 和 Socket.IO 进行了尝试。 (例如 git clone git://github.com/LearnBoost/Socket.IO.git)。它似乎有效,但我在任何地方都找不到那个东西!调用 git 时位于 /root/node 中,期待 lib 文件夹中的更改...

    node.JS 使用的是 CommonJS 模块系统。在 Socket.IO 示例中,io = require('../') 用于导入 Socket.IO,这对我来说看起来很奇怪。网络上的其他示例指的是“./Socket.IO-node”。由于模块只是遵循某些规则的 JS 文件,因此我希望像这样的文件的路径,因为我在 /root/node/lib 中找到了 http.js。 顺便看一下server.js的例子:http使用var是不是有一定的原因,而其余的变量(url、fs、io、sys)却没有?

    在客户端,“如何使用”Socket.IO 的第一行是:io.setPath(...)。页面上的其他任何地方都没有提到 setPath。它应该指向哪里,相对于什么?

    我没有找到有关使用 shell 停止/重新启动节点的信息。可能它是如此明显,以至于从未在任何地方提及;)

感谢您的帮助。

【问题讨论】:

【参考方案1】:

    如今 Turnkey-Core 附带的 git 版本已经过时了。也许这会引起问题。我在 windows 和 WinSCP 上使用我的 git ;)

    默认使用 index.js 有一种内置的自动性,就像 web 服务器上默认使用 index.html 一样。所以'../'指向父文件夹中的index.js,然后导出socket.io的监听器。 Guillermo Rauch 现在已经在 socket.io 文件夹中放了一个 index.js,所以像 './lib/socket.io/' 这样的东西正在工作。请注意,那里有一些示例,例如 './socket.io/socket.io.js',但对于某些好的 reasons,socket.io.js 不再存在。 当然 var 用于所有变量。我已经将逗号视为分号。也许我应该改变我的屏幕分辨率;)

    看这个例子就很清楚了。 setPath 指向 socket.io.js 和它的 lib 目录所在的文件夹,相对于使用它的 html 文件。这是 Flash-sockets 工作所必需的。

    嗯,事情没那么简单。您可以使用 'ps ux' 查找 PID,然后使用 PID 'kill' 进程。更好的方法是使用暴发户。或者你通过代码使用自动重启来完成。

【讨论】:

以上是关于使用 node.JS 和 Socket.IO 的路径和其他问题的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Asterisk ARI 与 socket.io 和 Node.js 一起使用

Node.js、多线程和 Socket.io

Socket.io 使用 node.js,根本没有 express?

node.js、socket.io 和 SSL

node.js + socket.io:拍卖网站开发

在 Heroku 上使用集群和 socket.io-redis 扩展 node.js socket.io@1.*.*