Socket.io客户端从CDN提供

22
根据Socket.io文档: socket.io服务器会自动将socket.io-client的独立构建版本公开为/socket.io/socket.io.js。或者,您可以提供在此存储库的根目录中找到的socket.io-client.js文件。
<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io('http://localhost');
    socket.on('connect', function(){
    socket.on('event', function(data){});
    socket.on('disconnect', function(){});
  });
</script>

然而,我希望能够从单独的CDN提供socket.io客户端(这更便宜、更快,并减少了服务器负载)。
我该如何做到这一点?我必须禁用socket.io默认设置吗?
3个回答

19
只要您使用的客户端版本与服务器上使用的版本相同,从CDN提供服务就不应该有任何问题。
话虽如此,客户端非常小(24kb),如果缓存设置正确,这对您的服务器影响应该很小。
更新:正如@maxwell2022所提到的,socket.io从1.0.0开始拥有自己的CDN,因此您可以使用:
<script src="https://cdn.socket.io/socket.io-1.0.0.js"></script>

1
从1.0版本开始,socket.io提供了从CDN为客户端提供服务的功能:http://socket.io/blog/introducing-socket-io-1-0/#cdn-delivery - maxwell2022
等一下,客户端代码和服务器端代码有单独的socket.io库吗? - Alexander Mills
是的,客户端代码与服务器端代码不同。它甚至有自己的存储库 https://github.com/socketio/socket.io-client - Pascal Belloncle
可能之前有一些问题,但现在已经正常了。不过目前已有比1.0更新的版本。您也可以使用CloudFlare上的版本,请参见https://cdnjs.com/libraries/socket.io。 - Pascal Belloncle
当前版本的CDN URL可以在这里找到。 - jhpratt
socket.io博客上看,v1.4.5及更高版本不再使用cdn.socket.io。相反,它们使用CloudFlare作为CDN。 - teuber789

15

您可以在这里找到socket.io客户端脚本文件的CDN链接。

0.9.16

//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js

0.9.6

//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.6/socket.io.min.js

......等等。


0
根据 维基,如果选择自己提供客户端服务,则可以克隆socket.io-client存储库并查看 dist/ 子目录。有4个文件需要提供服务(这可能会更改):
  • WebSocketMain.swf
  • WebSocketMainInsecure.swf
  • socket.io.js
  • socket.io.min.js

确保每次更新服务器时,您都要更新这些文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接