节点关系.js/快速/连接/Socket.io
Relationship of node.js / Express / Connect / Socket.io
>我很困惑。我的主要问题是,什么时候使用纯节点.js,什么时候应该使用像"express"或"connect"这样的框架/MVC。
我知道"快递"只是在"连接"中添加一堆功能,但它真正有什么用呢?比方说,我希望我所有的HTTP东西都针对"Apache"服务器做,并且只对node做一些部分的事情.js(如WebSocket连接,CouchDB等)。
在这种情况下,出于某种原因使用"快速"或"连接"是否有意义?
据我所知,Socket.IO 也处理HTTP请求作为后备,那么使用 Socket.IO 来满足这些需求就足够了吗?
使用Express/Connect还有什么最大的优势?
Express(或Connect)是HTTP Web应用程序的应用程序框架。它是应用程序的入口点。它提供了一些非常常见的功能,例如:
- HTTP 服务器
- 网址路由
- 请求参数
- 会话
它还允许轻松使用其他功能(它们称为中间件),例如身份验证处理、模板化。
如果您只想通过 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);
});
});
如果你想在更复杂的应用程序中使用 Socket.io,提供页面和API,你可以(必须?)将其与Express集成(请参阅如何使用)
我已经使用 Expressjs 一段时间了,发现它对它默认提供的 Jade 模板引擎特别有用。Jade是一种新的模板语言,虽然我承认需要一些时间来熟悉它,但它非常有用。您可以编写条件,mixin,将变量传递给页面,使用部分等。它只是使客户端html变得非常简单。此外,expressjs设置了您的视图,javascript,样式表目录结构...如果遵循正确,捕获响应并呈现 html 页面只需几行代码即可。如上所述,http 中间件更容易实现。
- 如何使用Socket.io将命令从客户端发送到服务器
- Socket.IO未定义变量
- Socket.io on Mozilla Rhino
- socket.io发射三次
- AngularJS$q承诺使用socket.io
- 如何知道使用socket.io订阅/取消订阅频道
- 通过socket.io发射给特定的人
- 通过socket.io从浏览器流式传输视频
- 通过node.js和socket.io向特定用户发送数据
- 如何使用socket.io在meanjs项目中配置jshint
- 如何使用Socket.io和Node.js开发大型聊天应用程序
- RangeError nodejs socket.io
- 通过node.js和socket.io在两个用户之间发送消息
- 使用socket.io更新express实时视图
- socket.io cookie解析握手错误
- 如何在同一端口上使用ExpressJS和Socket.io
- 使用cordova快速nodejs socket.io
- 通过socket.io与heroku应用程序进行通信
- Socket.io客户端在使用名称空间时忽略端口[Bug?]
- Node.js-socket.io-对io.sockets的引用突然未定义