所有
我对socket.io很新,当我通过它的Docs(特别是Express 3/4部分)时,有一个例子:
polyfit
我想要了解的是这一行:
slope * x + intercept
这里的文档:https://nodejs.org/api/http.html#http_class_http_server
让我更加困惑,我想任何人都可以提供一些细节如何阅读这些文档( Node.js 和 Express.js API)以及如何找出什么那个" app"应该是这样的,以便它可以传递到var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(80);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
?
由于
答案 0 :(得分:0)
它有点令人困惑,但http.Server
的基本契约是它需要一个接受2个参数的请求处理函数:req, res
。 app
对象express为你创建的实际上是一个函数,并且实际上被设计为用作http请求处理程序,所以它们一起工作,但它可能非常混乱,因为除了作为函数之外,当然{ {1}} instance是一个表示整个express应用程序的复杂对象,因此它有很多其他属性。但是像app
这样简单的东西可以很好地作为function (req, res) { console.log('Request received')}
的参数。
连接点的另一种方法是执行此操作并确认事情仍然可以正常工作:
http.Server
然后你意识到你的函数只是将参数传递给var server = require('http').Server(function (req, res) {
app(req, res)
});
未经修改,因此是不必要的。