我有一個在 nodejs 中用 express 制作的 websocket 服務器
Websocket 檔案指出websocket.send()可以傳遞字串或陣列緩沖區。現在我想通過 websocket 向客戶端發送大量物件(格式化時為 200k 行)。發送此類資料的最佳方式是什么。
我試過的:我試過通過字串化直接發送它,現在這完全正常,但延遲很長。
那么有沒有什么方法可以在保持速度不變的情況下向客戶端發送如此龐大的陣列資料呢?我認為陣列緩沖區可能會有所幫助,但我找不到任何建議的示例
此外,如果此問題是特定于代碼的,請在評論中告訴我,以便我也可以共享代碼片段。
uj5u.com熱心網友回復:
通常套接字用于處理實時訊息傳遞,犧牲常見的 http 功能,以實作輕量和快速的目標。查看:
- websockets 如何比簡單的 HTTP 請求更快?
傳輸大量資料與此背道而馳。查看 :
- 通過套接字發送大檔案
建議 1
使用套接字檢測加密代碼中某些更改的實時通知應使用套接字。
在客戶端知道(感謝套接字)有一個新的或更新的加密代碼(很大)之后,使用通用 http 代替套接字下載它,@jfriend00也在評論中推薦。
此外,如果資料很大,您應該使用一種方法來拆分資料并使用公共 http 而不是套接字逐塊發送。
忠告2
正如@jfriend00所說,主要的檔案主機服務也是如此,實作和演算法來拆分資料并部分發送到客戶端。
如果塊或部分很小,也許您可??以使用套接字,但這是一個通用功能,因此請使用已知方式:common http
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/362012.html
上一篇:npmexpress找不到中間件
