2014-06-26 28 views
0

我注意到,推荐的方法是从服务器下载客户端JS:为什么我必须从该服务器下载socket.io.js?

<script src="http://localhost:8002/socket.io/socket.io.js" 

这是因为它是动态生成的?我可以编写script以使其从静态源下载吗?


var app = require('http').createServer(handler) 
var io = require('socket.io')(app); 

这使得app接受该/socket.io路径请求。这里究竟发生了什么,因为它接受WS,彗星甚至是客户端js文件的请求?

+0

我忘记了从Socket.IO服务器加载客户端js的优势。请查看[我的答案](http://stackoverflow.com/a/24431352/2600208)的更新。 – Curious

回答

0

这是因为它是动态生成的吗?

不,有一个socket.io/node_modules/socket.io-client/socket.io.js文件,它由Socket.IO作为静态内容提供。

我可以编写脚本使其从静态源下载吗?

是的,当然。此外,there is a Socket.IO CDN,您可以使用此URL包括socket.io.jshttps://cdn.socket.io/socket.io-1.0.0.js。通过这种方式,您将获得“最高级别的gzip压缩和适当的缓存支持”。

这里究竟发生了什么,因为它接受WS,彗星,甚至是客户端js文件的请求?

不幸我不知道:)答案需要对Socket.IO架构有很好的了解。如果你有强烈的愿望和空闲时间,你可以学习Socket.IO源代码来理解它是如何工作的。这将是一个非常好的经验:)

我希望我的回答可以帮助你。祝你好运

更新:

在从Socket.IO服务器加载客户端库的优势,有一个事实是,你不必担心版本冲突 - 在服务器上升级Socket.IO时你将得到相同版本的Socket.IO客户端库。