我打算在這個問題上做一點基準測試,我自己。但我認爲從「社區」獲得一些初步反饋意見會很好。有沒有人對這兩種技術的優缺點做過分析?我的想法:Web服務vs持久套接字
- 與持久連接相比,打開和關閉Web服務調用的TCP/IP連接相對較爲昂貴。
- 處理間歇性連接錯誤和狀態等等,使用基於Web服務的框架會更容易。
- 你沒有看到使用網絡服務的魔獸世界。
一個問題,我似乎無法找到任何地方的答案(即使在這裏)......是單個網卡可以支持的持續連接數量的限制?
我打算在這個問題上做一點基準測試,我自己。但我認爲從「社區」獲得一些初步反饋意見會很好。有沒有人對這兩種技術的優缺點做過分析?我的想法:Web服務vs持久套接字
一個問題,我似乎無法找到任何地方的答案(即使在這裏)......是單個網卡可以支持的持續連接數量的限制?
你一起泡吧信息和交付方式。如果您在節省位數和重新安排片斷的情況下可以更快地使用消息,Web服務可能不是您的正確選擇。如果我假設您有相對較大的基於文本的消息,則Web服務可能適合您的需求。因此,這是我將如何回答你的想法:
我不知道最後一個問題的確切答案。您的網絡服務器可以處理多少個連接,然後由您的操作系統以套接字數量的形式創建另一個連接,從而實現一個限制。
希望這會有所幫助。 -Raj
這是一個非常普遍的問題,是您明確提出的多個問題,還有更多問題與您可能會或可能不知道的相關問題有關。
一個問題是HTTP與其他協議(或消息交換模式,要準確)。 HTTP是request-response,許多通信模式不適合請求響應範例。持久連接允許更靈活的面向消息的協議,如典型的全雙工聊天交換模式。
既然你提到WOW,他們使用UDP而不是TCP。 TCP提供流保證語義,保證順序並且不重複。但爲了實現這個目標,需要付出沉重的代價才能獲得延遲。像WOW這樣的遊戲對延遲更感興趣,並且不關心訂單保證:最新的數據包是,總是最好,並且取代以前的任何數據包信息。
還有更多問題的表面下潛伏着:
終於有問題你問:TCP套接字限制。它們取決於每個操作系例如,由於TCP端口耗盡,典型的開箱即用的Windows服務器將在大約1000個TCP套接字中窒息。它必須特別是tuned for higher numbers。即使調整,它也很難接近64K開放,正常運行的套接字。對於需要連接到數百萬客戶端的服務器,連接必須在中間層進行復用,並且消息傳遞協議必須準備好轉發引起的問題,最重要的是消息順序反轉。
這個問題空間很大,每座橋下都有很多龍。
感謝您的回覆。關於端口耗盡的例子似乎更適用於客戶端計算機,它耗盡了可用於通信的「返回端口」數量,而不是單個端口上託管的服務器。 – user226662 2010-04-13 15:22:47
accept socket與listen socket不同。服務器排空端口,實際上速度很快。 – 2010-04-13 16:35:30
謝謝,拉吉。我認爲在評估這兩種選擇時,發送消息的數量和大小的重要性是正確的。我也認爲,從傳輸方法vs協議的角度來看,這個問題是模糊的。 – user226662 2010-04-13 15:26:46