繁体   English   中英

配置``最简单''的node.js + socket.IO + Express服务器

[英]Configuring 'simplest' node.js + socket.IO + Express server

在设置一个简单的node.js socket.IO服务器后就意识到,即使是最简单的包含脚本标签的网页也无法处理。

因此,我研究了express,这是用于node.js的简单Web框架。

在查看Express文档http://expressjs.com/guide.html之后,我仍然对如何将Express与Node.js服务器上的socket.IO结合起来感到困惑。

几个小时的谷歌搜索之后,我遇到了本教程https://www.digitalocean.com/community/articles/how-to-install-express-a-node-js-framework-and-set-up-socket-io- vps上

/**
 * Module dependencies.
 */

var express = require('express')
  , routes = require('./routes')
  , http = require('http');

var app = express();
var server = app.listen(3000);
var io = require('socket.io').listen(server); // this tells socket.io to use our express server

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.static(__dirname + '/public'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
});

app.configure('development', function(){
  app.use(express.errorHandler());
});

app.get('/', routes.index);


console.log("Express server listening on port 3000");
io.sockets.on('connection', function (socket) {
    console.log('A new user connected!');
    socket.emit('info', { msg: 'The world is round, there is no up or down.' });
});

我的问题是,阅读本文的任何人都将以不同的方式配置其服务器吗? 我不需要任何特殊的东西,不需要会话处理等,只需提供包含外部CSS和javascript文件链接的html页面即可。

  1. 删除第一个app.configure包装器,但保留其中的内容。 通常它是无用的,但是特别是如果您不向其传递参数。
  2. methodOverride删除methodOverridebodyParser

感谢所有的答复。 终于有了一些有用的东西,然后发布,以便其他人可以从中受益。 我的第一次尝试(上面)显然不是最简单的解决方案:)

//npm install express
//npm install socket.io
var express = require('express');
var server = express.createServer();

server
    .use( server.router )
    .use( express.static(__dirname+'/public') )
    .get('/api', function(req, res) {
        res.write('API');
    });

server=server.listen(3000);

var io = require('socket.io');
var socket = io.listen(server);

socket.on('connection', function (client){
  // new client is here!


});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM