0

我整天都在研究我的第一个将 socket.io 与 Node 和 Express 结合的应用程序,但我似乎无法socket.io.js在客户端找到我的文件。我已经阅读了许多关于此问题的 SO 问题和其他论坛,但似乎无法让我使用任何推荐的解决方案。

我已经成功安装了 express 和 socket.io,并且在服务器端一切正常(目前只是让它与 Twitter Stream Api 一起工作)。现在我想使用来自emit客户端的数据,我需要包含我的套接字文件。

我已经将 HoganJS 设置为我的视图引擎。

app.js这是我的文件的摘录:

app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hjs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(require('less-middleware')({ src: path.join(__dirname, 'public') }));
app.use(express.static(path.join(__dirname, 'public')));

我有另一个名为的文件index.js,这是我的 twitter 和套接字代码所在的位置,这是我的要求行:

var twitter = require('ntwitter');
var io = require('socket.io').listen(3001, {log: false});
// all my twitter setup/functions etc here
io.sockets.emit('tweets' ,data);

现在在客户端,我已经尝试了我能想到的所有可能的路径,包括:

<script src="localhost:3000/socket.io/socket.io.js"></script>
<script src="socket.io/socket.io.js"></script>

还有许多其他路径试图弄清楚如何正确链接它。如果这很明显或在其他地方得到回答,我感到非常抱歉,但我找不到它。

根据 chrome 开发工具,我能想出的任何路径都会导致 404。

非常感谢!

4

2 回答 2

1

由于您socket.io在端口 3001 上运行:

<script src="http://localhost:3001/socket.io/socket.io.js"></script>

但是你也可以socket.io在同一个端口上同时运行和 Express:

var express = require('express');
var app     = express();
var server  = app.listen(3000);
var io      = require('socket.io').listen(server);
于 2013-10-26T10:01:41.490 回答
0

检查您是否有文件socket.io.js

检查下node_modules -> socket.io -> socket.io.js

如果是,请尝试此路径

< script src="/socket.io/socket.io.js" > < /script>

于 2013-10-26T11:43:17.810 回答