我正在開發一個具有用Java編寫的桌面客戶端的Web應用程序。我正在使用WebSockets在NodeJS服務器和Web客戶端之間進行通信。我應該使用WebSocket還是普通的TCP套接字?
我想決定是否使用WebSocket或普通的TCP套接字在NodeJS服務器和桌面客戶端之間進行通信。
據我所知,使用WebSocket會比較容易,但也有點重。
如何做出這個決定?
我正在開發一個具有用Java編寫的桌面客戶端的Web應用程序。我正在使用WebSockets在NodeJS服務器和Web客戶端之間進行通信。我應該使用WebSocket還是普通的TCP套接字?
我想決定是否使用WebSocket或普通的TCP套接字在NodeJS服務器和桌面客戶端之間進行通信。
據我所知,使用WebSocket會比較容易,但也有點重。
如何做出這個決定?
這取決於你的確切使用情況:
因此,如果您必須將防火牆和代理集成到現有基礎架構中,那麼WebSockets可能是更好的選擇。如果您的應用程序性能很高,需要每一個微小的帶寬,處理器時間和最低(初始)延遲,那麼普通套接字就更好。
除此之外,如果延遲真的是個問題(如使用實時音頻),那麼您最好不要使用任何基於TCP的協議,如TCP套接字或WebSockets。在這種情況下,使用UDP並處理應用程序內潛在的數據包丟失,重新排序和重複可能會更好。
是否有適當的WebSocket庫用於實現桌面客戶端的任何技術? The websocket protocol不是微不足道的,它是一種相當新的技術,尚未得到普遍支持。當您必須從頭開始使用純TCP/IP套接字來實現WebSocket時,您可以計劃花費幾天時間,直到基本協議實現工作,並且可以開始在其上實現自己的協議(在那裏,完成了這項工作,拋出它離開了一個圖書館的時候,比我自己的實施工作更好)。
但是,如果您可以爲您的桌面客戶端找到Websocket實現,那麼您可以通過讓網站和桌面客戶端以相同的方式與node.js後端進行通信來節省服務器端的一些工作和複雜性。