【发布时间】:2016-07-17 05:34:42
【问题描述】:
我对 Node.js 很陌生。我正在使用 socket.io 构建一个实时提要应用程序。
我正在使用http://socket.io/get-started/chat/ 开始我的应用程序。 结合快递
以下是我的服务器代码
/**
* Module dependencies.
*/
var express = require('express');
var logger = require('morgan');
var routes = require('./routes');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
// log requests
app.use(logger('dev'));
app.use('/rest', routes.userInfo, routes.matchList, routes.teamList,
routes.completedMatchList);
io.on('connection', function(socket){
console.log('a user connected');
});
app.listen(3006);
console.log('listening on port 3006');
然后我的应用程序的 web 文件夹中有一个 index.html。
我只是使用纯代码来初始化客户端套接字,如下所示
<script src="/node_modules/socket.io/node_modules/socket.io-client/socket.io.js"></script>
<script>
var socket = io();
</script>
我启动了我的服务器并且它运行良好 但即使在客户端页面加载并提供服务后,连接事件也不会被监听,代码也不会在控制台“用户已连接”中打印。
只是补充一点,我在中间使用了一个应用程序路由器,它从端口 5000 开始。
我在 chrome 控制台中检查过,它不断报告错误,例如
http://localhost:5000/socket.io/?EIO=3&transport=polling&t=LF2viiR
http://localhost:5000/socket.io/?EIO=3&transport=polling&t=LF2vj0v
干杯,
苏拉夫
【问题讨论】:
-
介意更新您从 chrome 控制台收到的错误吗?由于这些 url 是 localhost,因此无法查看它们。
-
@ckross01 感谢您的回复...更新了我的 chrome 控制台的快照...
-
看起来您的前端代码需要端口 5000,但您的快速服务器正在侦听 3006
-
正如我所说,我的应用路由器正在端口 5000 上运行
-
明白了,路由器是否将 http 101 请求转发到您的 express 服务器?