使用1.0缩小/socket.io/socket.io.js

时间:2014-06-01 16:03:11

标签: socket.io

今天发布了socket.io 1.0。 我刚刚更新了,现在以下内容已经不再适用了:

io.enable('browser client minification');
io.enable('browser client etag');
io.enable('browser client gzip');

新文档似乎还没有完成, 如何使用1.0缩小和启用gzip + etag?

4 个答案:

答案 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

我们没有发现任何显着的生产放缓,因此可能它在某些方面做了一些聪明的事情,但我对他们删除所有这些代码并不感到惊讶。

缩小为using uglify before

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版本。