2011-09-07 80 views
0

我正在開發一個使用TCP協議(套接字)傳輸日期的移動應用程序。 什麼是完美的解決方案?是打開套接字併發送消息,如果我想發送另一條消息,我需要重複相同的序列,打開>發送>關閉? 或者,打開>發送> ..保持套接字打開..>再次發送> ..>關閉?何時關閉TCP套接字? (完美的案例)

如果我想實現即時消息等聊天服務,那麼在每條消息之後關閉套接字是否好,因爲流量是一個很大的考慮因素?

我希望這個問題是清楚的

回答

1

這要看你的消息的頻率通過電線發送。如果您打算每隔一兩秒發送一條消息,則應保持連接處於打開狀態。這就是XMPP協議的工作原理 - 通過開放式TCP連接一次流式傳輸XML。

保持連接打開有兩個優點:首先建立連接帶有價格。其次,由於TCP/IP slow-start功能的開啓和關閉連接決不會讓您使用接近全網的帶寬。另一方面,如果您保持連接時間過長且沒有任何套接字通信量,則某些網絡中間件(如路由器或防火牆)可能會在連接斷開的情況下關閉連接。您必須考慮這一點,並使用保持活動功能或正確處理重新連接。

+0

什麼是最好使用原始的TCP套接字編程或XMPP? – Adham

+1

很高興你問:-)。 Facebook使用XMPP進行聊天,例如Google Talk。這也使得過多的客戶端軟件能夠與您的應用程序進行交互。自己回答。 –