【问题标题】:Issues using node with socketio使用带有 socketio 的节点的问题
【发布时间】:2012-06-27 07:53:12
【问题描述】:

我被困在使用带有套接字 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的目录结构中做错了吗? 客户端文件附近应该包含哪些文件?

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

谢谢。

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    首先

    回答 1:

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

    2.在 cmd 中导航您的项目主管

    3.安装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 的更多详细信息

    【讨论】:

    • 我完全按照您所说的进行了尝试,但是 socketio 不在我当前的节点目录中,它在 Users\node_modules 中的某个地方...仍在搜索它,顺便说一句,我成功运行 server.js我只是将 node_modules 从 Users\... 复制到 nodejs 安装路径。但现在问题是运行客户端 html 可能我对此还不清楚。
    • 我永远无法连接到服务器,它显示,连接在客户端的套接字中关闭。以及使用 express 的任何好处(因为我将在其他框架上添加一层)?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 2019-03-29
      • 2021-07-24
      • 2011-02-06
      相关资源
      最近更新 更多