express4.0+socket.io整合的问题。

发布于 2021-11-24 15:33:31 字数 1629 浏览 679 评论 3

网上大部分例子都是express3.0.新版的api貌似差别蛮大,我装的4.0用网上的例子基本不能跑。就只能结合官网的例子,在这基础上修改。。

以下是部分代码

app.js

var express = require('express');
var path = require('path');
var favicon = require('static-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var ejs = require('ejs');

var routes = require('./routes/index');
var users = require('./routes/users');

var app = express();

var http = require('http').Server(app);
var io = require('socket.io')(http);

io.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
    socket.broadcast.emit('message','kan  your hole family');
});



bin/www中
#!/usr/bin/env node
var debug = require('debug')('webchat');
var app = require('../app');

app.set('port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
});



修改完以后。能够正常访问,可以确定的是页面上的那段代码是没问题的。启动没报错。错是fail to load resource:localhost:3000/socket.io/socket.io.js。我猜是socket.io模块没监听到同一个3000端口上。。具体也不是很清楚怎么去描述。

另外想了解下,express4.0用express生成的项目架构。。为什么启动用npm start是读的bin/www这个文件。。而大部分网上的demo项目都是直接通过node xxx.js启动。。。


最后。求点express4.0的教程。。api看了下。东西太多。不好抓重点。。最好是完整4.0项目。。THX~



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无声静候 2021-11-29 12:26:38

express3的例子我也找了几个。。跟你这个差不多。。也能跑。现在我已经降回去3了。。4的例子实在太少。。还是熟悉了API在考虑升级

月亮是我掰弯的 2021-11-28 10:17:42

我的代码是这样写的。socket.io和express 3的,不过我想express 4也不是问题。

var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var path = require('path');
var routes = require('./routes');

app.configure(function(){
  app.set('port', process.env.PORT || 3001);
  app.set('views', __dirname + '/views');
  app.set('view engine', 'ejs');
  
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser('iswear'));
  app.use(express.session());
  app.use(express.static(path.join(__dirname, 'public')));
  
  routes(app, io);
});

http.listen(3001, function(){
  console.log('listening on * : 3000');
});

丢了幸福的猪 2021-11-28 06:42:08

是不是帖子沉太快。。还是分类没分好。貌似没人回答额。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文