找不到 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 调用的端口,因此该行将是 &lt;script src="http://localhost:8080/socket.io/socket.io.js"&gt;&lt;/script&gt; 确实如此。您是否偶然使用了旧版本的 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

找不到Node.js /socket.io/socket.io.js express 4.0

无法获取 socket.io.js

socket.io客户端API

nodejs后台页面怎么引入jquery

更改 Socket.IO 静态文件服务路径

在ubuntu中编译安装mysql,但是没有生成/tmp/mysql.sock文件?