Javascript Socket.io无法加载websocket.js

Javascript Socket.io无法加载websocket.js,javascript,node.js,websocket,socket.io,Javascript,Node.js,Websocket,Socket.io,我尝试在一个简单的应用程序中使用socket.io 调用以下js文件时: 节点\u modules\socket.io\lib\transports\websocket.js 以下行未能加载(它并不是真的失败。它实际上返回了一些空结果,并使用protocolVersions使一些后续代码失败): 我调试了一点,这行代码的目的似乎是加载以下js文件: 节点\u modules\socket.io\lib\transports\websocket\index.js 但是,由于“transports”

我尝试在一个简单的应用程序中使用socket.io

调用以下js文件时:

节点\u modules\socket.io\lib\transports\websocket.js

以下行未能加载(它并不是真的失败。它实际上返回了一些空结果,并使用protocolVersions使一些后续代码失败):

我调试了一点,这行代码的目的似乎是加载以下js文件:

节点\u modules\socket.io\lib\transports\websocket\index.js

但是,由于“transports”文件夹下还有一个“websocket.js”(正在运行的文件),因此require函数总是尝试加载“websocket.js”,并返回一些意外的结果

我将文件夹名称改为“websockets”,并改为调用“require('../websockets'),它解决了这个问题。然而,这是一个共享库,我不喜欢把它的代码弄乱

我试图理解为什么这个问题会以这种方式发生,以及解决这个问题的最佳方法是什么。我相信这段代码在发布之前已经过很好的测试

您可能已经注意到我正在使用反斜杠“\”分隔路径。是的,我正在Windows上运行它!这会造成什么不同吗


谢谢

您是否在
node\u modules/
中编写了
app.js
?对
套接字的要求。io@0.9.16
用于
/websocket/
,因此在末尾添加了斜杠。致damphat:不,我的应用程序不在节点模块中。“node_modules”下的所有模块都是由npm下载的。但这并不是我的代码。这些都是npm自动下载的库,所以我不想把它搞乱。当它部署到服务器上时,可能会产生问题。所以我试着去理解为什么会发生这个问题。如果这一行已经过测试,是因为我使用的环境非常不同吗?我在OSX上尝试了相同的代码,但没有相同的问题。我认为可能是环境不同导致了此故障,并且此版本的socket.io可能从未在Windows上测试过。
var protocolVersions = require('./websocket');