![](/img/trans.png)
[英]what does these three lines of code do when initializing an express app in Node.js with socket.io?
[英]In node.js do I need http when building a socket.io/express app?
我刚刚开始使用node.js,可以使用express框架构建一个简单的应用程序来响应请求并具有一些基本路由。
我正在寻找使用socket.io创建东西的方法,但是我对使用'http'模块感到有些困惑。 我了解http是什么,但我似乎不需要它来使以下各项起作用:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.htm');
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
我可以通过http提供html页面,而无需显式要求http模块,例如:
var http = require('http');
如果我使用Express,那么http模块有什么用吗?
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
...
server.listen(1234);
但是,app.listen()也会返回HTTP服务器实例,因此只需进行一些重写,您就可以实现类似的操作,而无需自己创建HTTP服务器:
var express = require('express');
var app = express();
var socketio = require('socket.io');
// app.use/routes/etc...
var server = app.listen(3033);
var io = require('socket.io').listen(server);
io.sockets.on('connection', function (socket) {
...
});
资源
http://stackoverflow.com/questions/17696801/express-js-app-listen-vs-server-listen
不,您可能不需要它。 您可以使用类似:
var app = require('express').createServer();
var io = require('socket.io')(app);
//您的express和socket.io代码在这里:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.