簡體   English   中英

在node.js中,構建socket.io/express應用程序時需要http嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM