0
A
回答
0
TCP套接字只是字節流,沒有消息邊界,你需要計算佔用的字節數,這個數字比較,從序言部分之一。
這裏有一些代碼可以滿足您的需求。它是用CoffeeScript編寫的,並且使用32位int來表示消息大小,因此您必須稍微調整一下。
remaining = 0
input = undefined
msgsize = 0
msbuf = new Buffer 4
msneeded = 4
sock.on 'data', (bytes) =>
start = 0
end = bytes.length
while start < bytes.length
if remaining == 0
msavail = (Math.min 4, bytes.length - start)
bytes.copy msbuf, msbuf.length - msneeded, start, start + msavail
msneeded -= msavail
continue if msneeded > 0
msneeded = 4
remaining = msgsize = msbuf.readUInt32LE 0
start += 4
input = new Buffer msgsize
end = (Math.min start + remaining, bytes.length)
bytes.copy input, msgsize - remaining, start, end
remaining -= (end - start)
start = end
@emit 'data', input if 0 == remaining
相關問題
- 1. 如何終止邊界消息
- 2. 什麼是消息邊界?
- 3. http請求消息的邊界
- 4. NPM是如何爲其更新消息創建邊界的?
- 5. 如何使UITableViewCell的邊界消失?
- 6. 如何獲取邊界的邊界值?
- 7. 如何去除核心圖上邊界的邊界
- 8. 如何檢查NTLM type3消息? (node.js)
- 9. 如何設置tkinter消息邊框
- 10. 在node.js上取消激活YUI3的INFO消息?
- 11. 如何在另一個邊界上製作部分有邊界的圓?
- 12. Node.js Bot拉鍊接消息
- 13. 瞭解node.js錯誤消息
- 14. eclipse上的顛覆邊界
- 15. UIViewController的上邊界改變
- 16. 邊界上的分詞
- 17. AdvancedDataGrid的邊界在彈出消失
- 18. 消失的DIV或DIV邊界
- 19. 如何避免身體標籤產生的邊界/邊界?
- 20. 如何消除此循環矢量化上的數組邊界檢查?
- 21. iPhone刪除消息,如界面
- 22. 如何使CSS邊界,實際上是在非常邊緣
- 23. 如何讓Node.js上的MS Bot Framework等待用戶的下一條消息?
- 24. 正確使用shared_ptr消除DLL邊界上的重新分配
- 25. OpenCV如何平滑邊界
- 26. 邊界定位:如何?
- 27. 如何計算邊界
- 28. 如何刪除邊界
- 29. 有界上下文找到邊界?
- 30. 的Javascript:閱讀node.js的HTTP消息