使用带有socketio的节点的问题

时间:2012-06-27 07:53:12

标签: node.js socket.io

我使用带有套接字IO的nodejs而陷入困境。

我正在使用Windows机器,下载了Node可执行文件,正确设置了环境变量。

这样我就可以在命令上运行一个简单的节点服务器。

然后我使用了npm install socketio 即使我安装了socketio(路径为c:\ Aakash \ Users \ nodemodules ....)

现在,当我使用示例代码运行装有套接字的节点服务器时,它会在socketio js中抛出错误,说“第1324行的indexOf未定义”。

这个错误来自server.js中我写过的行

require("socket.io");

可能是无法执行socket.io。

混淆: 1)socketio文件位于Users \ nodemodules中... 它将如何在require语句中获取socketio ???

2)同样在客户端我需要socket.io.js,这也是在Users ..目录中,但在这里我复制了socket.io.js并把它放在clientfile.html附近。

我在socketio的目录结构中做错了吗? 应该在客户端文件附近包含哪些文件和哪些文件?

我搜索了上述问题,但没有成功。

感谢。

2 个答案:

答案 0 :(得分:1)

首先

答案1:

1.创建项目文件夹(任何位置)

2.在cmd

中导航项目主管

3.Install socket.io(npm install socket.io)

安装socket.io后,您将在项目文件夹中找到node_module目录。

答案2:

现在你的客户端将获取socket.io文件(只需包含src ='/ socket.io/socket.io.js')

你有没有使用过这样的东西:

如果您使用http模块,那么

var app = require('http').createServer(handler)
  , 
io = require('socket.io').listen(app)
  , fs = require('fs')

app.listen(1324);

function handler (req, res) {
   // your handler
}

我认为您应该使用express模块来获取socket.io

的更多详细信息

答案 1 :(得分:0)

如果你安装了一个全局模块(npm install module -g)然后你会尝试将它安装在项目的文件夹中(没有-g),它将不再安装,因为它已经安装。但是如果没有全局安装它,您可以在多个文件夹中多次安装它。 有关节点如何加载模块的更多信息,您可以阅读thisthis