node.js/Express/Connect/Socket.io的关系

And*_*old 3 javascript node.js express socket.io

我糊涂了.我的主要问题是,何时使用纯node.js,何时我应该使用像"express"或"connect"这样的框架/ MVC.

我知道"express"只是为"连接"添加了一堆功能,但它真正有用的是什么?可以说,我希望我的所有HTTP内容都针对"Apache"服务器,并且只对node.js做一些部分内容(如WebSocket连接,CouchDB等).

在这种情况下,出于某种原因使用"express"或"connect"是否有意义?

据我所知,Socket.IO还处理HTTP请求作为回退,所以它是否足以使用Socket.IO来满足这些需求?

使用Express/Connect还有什么大优势?

Arn*_*uin 5

Express(或Connect)是HTTP Web应用程序的应用程序框架.这是您的应用程序的切入点.它提供了一些非常常见的功能,例如:

  • HTTP服务器
  • URL路由
  • 请求args
  • 会议

它还允许轻松使用其他功能(称为中间件),例如身份验证处理,模板化.

如果您只想通过SocketIO实现发布/订阅服务,而不使用任何页面或其他API,只需使用Socket.io库(S.io主页示例):

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

io.sockets.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
});
Run Code Online (Sandbox Code Playgroud)

如果你想在一个更复杂的应用程序,服务页面和API中使用Socket.io,你可以(必须)将它与Express集成(请参阅如何使用)