node.js应用程序可以';找不到socket.io
我在app目录(以及express)中安装了socket.io,并在node.js应用程序可以';找不到socket.io,node.js,socket.io,Node.js,Socket.io,我在app目录(以及express)中安装了socket.io,并在index.html文件中通过以下方式链接到它: <script src="http://localhost:8080/node_modules/socket.io/lib/socket.io.js"></script> 这是前端: <script src="/socket.io/socket.io.js"></script> <script src="js/vendor/
index.html
文件中通过以下方式链接到它:
<script src="http://localhost:8080/node_modules/socket.io/lib/socket.io.js"></script>
这是前端:
<script src="/socket.io/socket.io.js"></script>
<script src="js/vendor/jquery-1.8.3.min.js"></script>
<script>
var socket = io.connect('http://localhost:8000');
var socket=io.connect('http://localhost:8000');
另外,我将jQuery从google CDN切换到了local,它也没有找到它尝试将JS文件放入
http://localhost:8080/javascripts/socket.io.js
,基本上是您的公共
文件夹的JavaScript目录。尝试将您的JS文件放入http://localhost:8080/javascripts/socket.io.js
,基本上是您的public
文件夹的JavaScript目录。不要使用整个路径,它与项目的目录结构不对应。只用
<script src="http://localhost:8080/socket.io/socket.io.js"></script>
顺便说一下,确保socket.io也在侦听8080,而不仅仅是项目中的其他服务。不要使用整个路径,它与项目的目录结构不对应。只用
<script src="http://localhost:8080/socket.io/socket.io.js"></script>
顺便说一句,确保socket.io也在侦听8080,而不仅仅是您项目中的其他服务。方法是randunel提供的方法
<script src="http://localhost:8080/socket.io/socket.io.js"></script>
如果直接链接该文件,则会收到“Welcome to socket.io”消息,而不是该文件。
还有一个CDN socket.io.js文件可供链接,但它已经过时,在新项目中无法正常工作,因此不推荐使用。方法是randunel提供的方法
<script src="http://localhost:8080/socket.io/socket.io.js"></script>
如果直接链接该文件,则会收到“Welcome to socket.io”消息,而不是该文件。
还有一个CDN socket.io.js文件可供链接,但它已经过时,在新项目中无法正常工作,因此不建议使用该文件。确保您已使
socket.io
监听后端的外部连接。基本上,socket.io有一个内部方法来提供你的socket.io.js
文件,所以你应该在定义到你的应用程序的任何路由之前放置你的require('socket.io')。listen(app)
正确的url是:
正如兰登内尔所说
因此,您的配置应该如下所示:
已为express 3.x更新:
var express = require('express'),
http = require('http');
var app = express();
var server = http.createServer(app).listen(8000);
require('socket.io').listen(server); // Your app passed to socket.io
服务器端
<script src="http://localhost:8000/socket.io/socket.io.js"></script>
确保您已使
socket.io
监听后端的外部连接。基本上,socket.io有一个内部方法来提供你的socket.io.js
文件,所以你应该在定义到你的应用程序的任何路由之前放置你的require('socket.io')。listen(app)
正确的url是:
正如兰登内尔所说
因此,您的配置应该如下所示:
已为express 3.x更新:
var express = require('express'),
http = require('http');
var app = express();
var server = http.createServer(app).listen(8000);
require('socket.io').listen(server); // Your app passed to socket.io
服务器端
<script src="http://localhost:8000/socket.io/socket.io.js"></script>
如果找不到“没事”是什么意思?在那条路径上有文件吗?@tadman是的,文件在这里,但它给了我404…如果找不到它,你说的“没事”是什么意思?路径上有文件吗?@tadman是的,文件在这里,但它给我404…可能是哪个js文件的副本?服务器文件还是socket.io?它没有说明socket.io.js文件的位置。我切换到了端口80,因此所有内容都将如文档中所示,并且我仍然得到gethttp://localhost/socket.io/socket.io.js 404(未找到)
哪个js文件?服务器文件还是socket.io?它没有说明socket.io.js文件的位置。我切换到了端口80,因此所有内容都将如文档中所示,并且我仍然得到gethttp://localhost/socket.io/socket.io.js 404(未找到)
我更新了我的问题以显示服务器文件,这就是你的意思吗?我得到了一系列错误:listen
method期望http.Server
,然后io没有定义
这是因为express 3.x我更新了答案。这个确切的代码对我有用;)。。试试卷曲http://localhost:8000/socket.io/socket.io.js您应该在控制台中看到``调试服务的静态内容/socket.io.js``您可以共享您的代码吗?警告消失,但io
仍未定义
。。。我快发疯了。。thanx的帮助:)没有定义io,因为我不需要它,您可以通过更改var io=require('socket.io')来定义io
我更新了我的问题以显示服务器文件,这就是你的意思吗?我得到了一系列错误:listen
method期望http.server
,然后io没有定义
这是因为express 3.x我更新了答案。这个确切的代码对我有用;)。。试试卷曲http://localhost:8000/socket.io/socket.io.js您应该在控制台中看到``调试服务的静态内容/socket.io.js``您可以共享您的代码吗?警告消失,但io
仍未定义
。。。我快发疯了。。thanx的帮助:)没有定义io,因为我不需要它,您可以通过更改var io=require('socket.io')来定义io代码>