2014-06-26 42 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客戶端庫。

相關問題