今天发布了socket.io 1.0。 我刚刚更新了,现在以下内容已经不再适用了:
io.enable('browser client minification');
io.enable('browser client etag');
io.enable('browser client gzip');
新文档似乎还没有完成, 如何使用1.0缩小和启用gzip + etag?
答案 0 :(得分:7)
似乎这是不可能的1.0 - 在socket.io文件夹中的递归搜索与“gzip”,“etag”和“minif”之类的单词不提供任何相关结果。除了以前的版本,socket.io.min.js
附近还有一个socket.io.js
文件。现在它缺席了。
也许以下解决方案不满意,但如果您在节点前使用nginx(或其他网络服务器),您可以提供socket.io.js
(例如由Google Closure Compiler手动压缩)拥有。您也可以在nginx上启用gzip和etag。
答案 1 :(得分:5)
检查出来:http://socket.io/blog/introducing-socket-io-1-0/
CDN交付
我们早期做出的最佳决策之一是,实现Socket.IO服务器不仅可以让您访问实时协议,而且Socket.IO本身也可以为客户端提供服务。
通常情况下,您只需要包含这样的代码段:
<script src="/socket.io/socket.io.js"></script>
如果您希望通过在用户附近提供服务来优化对客户端的访问,请提供最高级别的gzip压缩(感谢Google的zopfli和对缓存的适当支持,您现在可以使用我们的CDN。它是免费的,永远,以及有内置的SSL支持:
<script src="https://cdn.socket.io/socket.io-1.0.0.js"></script>
此外,如果您要从0.9迁移:http://socket.io/docs/migrating-from-0-9/
答案 2 :(得分:2)
关于压缩:
查看old code for version 0.9它似乎产生了gzip进程来进行压缩。我找不到any caching neither。
我们没有发现任何显着的生产放缓,因此可能它在某些方面做了一些聪明的事情,但我对他们删除所有这些代码并不感到惊讶。
https://cdn.socket.io/socket.io-1.0.0.js的样本为78.5 kB,缩小版为57.1 kB。当您将其与通过它传输的数据量进行比较时,可以多出37%但可忽略不计。
答案 3 :(得分:1)
我使用了CDN但是我遇到了firefox的跨域问题。
实际上这个问题发生是因为socket.io在firefox中使用xhr-polling传输方法启动,然后立即切换到websocket,而chrome直接使用websocket启动。 设置为第一个传输方法websocket(通过客户端js配置)问题已得到修复,但是那些不支持websocket的客户端呢? 所以我又回到了node serverd版本。