为什么我必须从该服务器下载socket.io.js?
问题描述:
我注意到,推荐的方法是从服务器下载客户端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文件的请求?
答
这是因为它是动态生成的吗?
不,有一个socket.io/node_modules/socket.io-client/socket.io.js
文件,它由Socket.IO作为静态内容提供。
我可以编写脚本使其从静态源下载吗?
是的,当然。此外,there is a Socket.IO CDN,您可以使用此URL包括socket.io.js
:https://cdn.socket.io/socket.io-1.0.0.js。通过这种方式,您将获得“最高级别的gzip压缩和适当的缓存支持”。
这里究竟发生了什么,因为它接受WS,彗星,甚至是客户端js文件的请求?
不幸我不知道:)答案需要对Socket.IO架构有很好的了解。如果你有强烈的愿望和空闲时间,你可以学习Socket.IO源代码来理解它是如何工作的。这将是一个非常好的经验:)
我希望我的回答可以帮助你。祝你好运
更新:
在从Socket.IO服务器加载客户端库的优势,有一个事实是,你不必担心版本冲突 - 在服务器上升级Socket.IO时你将得到相同版本的Socket.IO客户端库。
我忘记了从Socket.IO服务器加载客户端js的优势。请查看[我的答案](http://stackoverflow.com/a/24431352/2600208)的更新。 – Curious