找不到 socket.io.js [重复]
Posted
技术标签:
【中文标题】找不到 socket.io.js [重复]【英文标题】:Can't find socket.io.js [duplicate] 【发布时间】:2012-01-31 04:06:21 【问题描述】:可能重复:socket.io.js not found
我正在使用最新版本的 Socket.IO,我正在尝试如何使用页面上的第一个示例,但是,当我尝试访问 '/socket.io 时出现错误/socket.io.js'
javascript 控制台说文件不存在。当我检查我的浏览器(http://socket.io/socket.io.js 和https://socket.io/socket.io.js)时,它也不在那里。文档是否过期?我应该包含的 socket.io.js 文件在哪里?
我在 Mac 上使用 NodeJS 运行我的 app.js 服务器。
我尝试过使用“http://cdn.socket.io/stable/socket.io.js”,但它似乎是旧版本(0.6)并且 Javascript 控制台说它没有“连接”功能。 (这很奇怪,我认为 connect 在这样的库中是一个相当完整的函数,但我猜不是)
【问题讨论】:
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js"></script>
【参考方案1】:
您的 Socket.IO 服务器将处理提供正确版本的 Socket.IO 客户端库;您不应该使用 Internet 上其他地方的一个。来自the Socket.IO website 上的***示例:
<script src="/socket.io/socket.io.js"></script>
之所以有效,是因为您将 HTTP 服务器包装在 Socket.IO 中(参见 How To Use 的示例),它会拦截对 /socket.io/socket.io.js
的请求并自动发送适当的响应。
【讨论】:
那么如果服务器正在运行,/socket.io/socket.io.js 应该会神奇地存在吗?也许我的服务器出了点问题,我只有:node app.js info - socket.io started
所以我不确定还有什么问题,Javascript 控制台说该文件不存在。
您介意展示您的服务器和客户端代码吗?在代码块中将其添加到您的问题中,或者将它们放在gist.github.com 或pastebin.com 上并将它们链接到您的问题中。更容易确定可能出了什么问题。 :)
我在这里复制并粘贴了第一个示例中的代码:socket.io/#how-to-use 但是,我更改了端口,因为node
抱怨我已经在使用 80。只是用我拥有的 primatology 把它弄坏了更改 socket.io.js 调用的端口,因此该行将是 <script src="http://localhost:8080/socket.io/socket.io.js"></script>
确实如此。您是否偶然使用了旧版本的 Socket.IO?签入node_modules
文件夹(假设您使用npm install socket.io
)并查看靠近顶部的Socket.IO 的package.json
进行仔细检查。此外,您可以省略主机/端口,只需输入/socket.io/socket.io.js
让浏览器确定域/端口。
我今天使用了npm install socket.io
命令,所以我假设我得到了 v.8。当我运行服务器时,我在 localhost:8080/socket.io/node_modules 上得到一个 Welcome to socket.io.
......对吗?同样在 localhost:8080/socket.io/package.json【参考方案2】:
我知道这看起来很明显,但是您是否在服务器上安装了 Socket.IO?然后,您将在“/socket.io/socket.io.js”处获得该文件的本地副本。
npm install socket.io
【讨论】:
我做到了。我的机器上 / 没有名为 socket.io 的文件夹。我能够很好地运行“node app.js”,并且服务器正在运行。 它将位于:127.0.0.1:1337/socket.io/socket.io.js 将 1337 替换为您正在侦听的端口。 我得到的只是“糟糕!谷歌浏览器无法连接到 127.0.0.1:1337” 哦。德普。我正在使用端口 8080(节点抱怨我已经在使用 80)。所以客户端的js应该是 -1:“/socket.io/socket.io.js”中没有“本地副本”。这听起来像是在您的服务器上的那个位置有一个文件。以上是关于找不到 socket.io.js [重复]的主要内容,如果未能解决你的问题,请参考以下文章