2013-07-21 98 views
2

有沒有辦法控制tcp套接字的每一步寫入來了解大型圖像數據傳輸的服務器端進度?node.js http服務器響應套接字寫入事件?

最糟糕的是,如何修改主節點的bin文件夾來添加這個事件?

最後,有人可以向我解釋爲什麼node.js http tcp套接字的最大長度是1460?

+0

現在的問題是一種混亂。你有3個問題,其中至少有一個似乎是基於一種誤解(最後一個)。也許你可以給我們看一些代碼。 –

回答

0

documentation

socket.write(數據,[編碼],[回調])

發送所述插座上的數據。 第二個參數指定在 字符串的情況下的編碼 - 它默認爲UTF8編碼。

如果整個數據已成功刷新到內核 緩衝區,則返回true。如果全部或部分數據在用戶 內存中排隊,則返回false。當緩衝區再次空閒時,將會發出「漏極」。

當數據是最終寫出的 時,將執行可選的回調參數 - 這可能不會立即生效。

事件: '漏極'

當寫入緩衝器變空觸發。可以用 來限制上傳。

參見:socket.write()

這樣的返回值,你可以指定一旦數據被刷新到被調用的回調,或者您也可以註冊一個「漏」事件處理程序插座。這實際上並沒有告訴你另一方面的進展,但是一個正確實現的服務器會在其隊列已滿時發送適當的通知,這將觸發Node.js端的事件。

+0

我想每個tcp pakage發送多少個報告事件。正如我用wireshark看到的那樣。我將用它來報告socket.IO – user2402622

+0

在客戶端的進程轉移。當您在Node.js中使用套接字時,您的工作比wireshark高出* *更多。有一件事是內核緩衝 - 所以你不一定會爲每次寫入套接字都發送一個網絡數據包。 –