2015-04-22 56 views
1

我有一個簡單的socket.io客戶端和服務器程序,運行在node.js上。客戶端和服務器之間交換消息幾分鐘,然後斷開連接(如聊天)。Nodejs + Socket.IO - 如何在套接字關閉後傳輸(讀/寫)總字節數

如果在套接字關閉之後,有什麼函數/方法可以用來獲取傳輸的總字節數(讀/寫)?

目前我正在爲客戶端發送和接收的每條消息添加消息大小。但是,根據我的理解,在socket.io中取決於使用哪種協議(websocket,xhr-polling等),由於頭文件/包裝器的大小,發送的最終有效負載的大小將有所不同。因此,只是添加消息字節不會給我一個準確的字節傳輸量度。

我可以使用像Wireshark這樣的監視工具來獲取這個值,但我更願意使用JavaScript實用工具來獲取此值。在網上搜索,沒有給我任何合理的答案。

對於純WebSocket連接,我能夠使用函數來得到這個值:socket._socket.bytesReadsocket._socket.bytesWritten

任何幫助表示讚賞!

回答

0

如果你想要這樣一個功能,無論socket.io連接下的底層傳輸是什麼,那麼這就必須是socket.io的一個基本特性,因爲只有它知道它在做什麼的細節與每個運輸和協議。

但是,socket.io沒有爲它可以使用的各種傳輸內置此功能。我會得出這樣的結論:如果你打算使用socket.io接口來抽象出協議上的特定協議和實現,那麼你放棄了確切知道socket.io選擇使用多少個字節的能力在其選擇的運輸上實施連接。

可能有調試API(可能只適用於瀏覽器擴展,而不是標準網頁),可以讓您訪問Chrome調試器中看到的一些頁面範圍的信息,因此可能是一個調查選項。如果您需要更多信息,請參閱chrome.devtools.network的信息。