本身有serve这个js
翻看源代码我们会发现,在 1.2.0
版本的 socket.io
中,的
/lib/index.js
中,有这样一段代码:
Server.prototype.attachServe = function(srv){
debug('attaching client serving req handler');
var url = this._path + '/socket.io.js';
var evs = srv.listeners('request').slice(0);
var self = this;
srv.removeAllListeners('request');
srv.on('request', function(req, res) {
if (0 == req.url.indexOf(url)) {
self.serve(req, res);
} else {
for (var i = 0; i < evs.length; i++) {
evs[i].call(srv, req, res);
}
}
});
};
这段代码截取了服务器的请求,如果发现请求 socket.io.js
这个文件,则会自己提供。