Javascript Socket.IO客户端库提供;欢迎使用socket.io“;消息

Javascript Socket.IO客户端库提供;欢迎使用socket.io“;消息,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,过了一段时间,我再次尝试使用node.js和socket.IO,但没有达到预期效果: 我的设置 从github下载node.js,并在运行debian Squence的my外部Web服务器上编译 为node.js项目创建了一个目录 使用npm在本地添加了socket.io 创建了socketIO_server.js并添加了以下代码行: var socketIO = require('socket.io').listen(8000); 启动socketIO_server.js,控制台日志显示“

过了一段时间,我再次尝试使用node.js和socket.IO,但没有达到预期效果:

我的设置
  • 从github下载node.js,并在运行debian Squence的my外部Web服务器上编译
  • 为node.js项目创建了一个目录
  • 使用npm在本地添加了socket.io
  • 创建了socketIO_server.js并添加了以下代码行:

    var socketIO = require('socket.io').listen(8000);
    
  • 启动socketIO_server.js,控制台日志显示“info-socket.io已启动”

  • 打开会显示消息“欢迎使用socket.io”
  • 问题 当我试图通过访问客户机库时,它也会显示消息“welcome to socket.io”,但控制台日志显示“serviced static content/socket.io.js”。我不知道为什么会这样! 我认为并行运行的nginx服务器会导致这个问题,但是停止服务器并没有改变任何事情


    谢谢你的阅读和帮助

    这是由于在最近的更改中提交了nodejs的EventEmitter库造成的。我在socket.io上打开了一个问题

    更新

    此问题自socket.io 0.9.12起已修复

    修正:

    承诺:


    在侦听端口时无法为socket.io.js提供服务。(节点0.9.1-pre,socket.io 0.9.9)

    由于最近提交到节点,您无法再拼接事件侦听器。这会导致socket.io在尝试访问socket.io.js客户端文件时显示欢迎消息,因为原始事件侦听器未被删除

    破损示例:

    var socketIO = require('socket.io').listen(8000);
    
    这是由于节点0.9.1预先更改了访问EventEmitter库侦听器的方式而导致的

    断开socket.io的nodejs提交

    使EventEmitter.listeners(事件)返回监听器数组的副本 数组本身的属性

    相对socket.io代码:

    // reset listeners
    this.oldListeners = server.listeners('request').splice(0);
    

    几天前我遇到了这个问题。必须将socket.io降级到v0.8.7,它工作正常。

    您运行的socket.io和nodejs版本是什么?(假设是最新版本)nodejs 0.9.1-preI做了一些挖掘,没有发现任何突出的东西。我已经链接到socket.io代码的相关部分。我没有预装0.9.1,但是你可以打开你的node_modules目录,在socket.io代码中做一些挖掘。好的,我同时做了什么:我也在虚拟机上安装了node.js/socket.io,在为客户机库提供服务时遇到了同样的问题。看起来像个虫子。问题:如何将更改应用于节点_模块上的修改?“npm重建套接字.io”?刚刚更改了“welcome to socket.io”消息,但它仍然显示原始消息。您在node_模块中所做的任何编辑都应该应用。Nodejs将通过
    require
    查看节点模块内部的任何请求。应用更改后是否重新启动节点进程?编辑:在浏览所有文件后发现一些有趣的东西。
    // reset listeners
    this.oldListeners = server.listeners('request').splice(0);