2012-06-11 115 views
0

我想建立一個持久的tcp connection如何通過GPRS移動網絡建立持久連接?

例如。與redis or mqtt or socket.io

我唯一擔心的是GPRS移動網絡連接的可靠性。

我正在尋找庫/方法來實現客戶端到其中一個(或其他服務器),可以交付和接收數據沒有損失。我並不擔心等待時間,但我打算向任一方向發送的數據必須沒有問題。

客戶端將在Android 2.2

+0

接受回答以獎勵最佳答案會很棒。 :)只是一個提示 –

回答

1

MQTT提供了保證使用消息握手進行消息傳輸的服務質量級別。如果連接因任何原因失敗,則客戶端庫將在連接返回後重試消息傳遞。

  • QoS級別0表示該消息最多隻能被服務器接收一次。
  • QoS級別1表示該消息至少會被服務器接收一次。
  • QoS級別2表示該消息將被服務器接收一次。

您需要QoS> 0,並檢查實施是否在斷開情況下正確恢復。

0

TCP做了一些基本的一致性檢查來實現你。 But it's only a 32 bit CRC因此,您的敏感數據和不可靠網絡(GPRS或其他)的組合意味着您必須實施您自己的附加驗證方案。我認爲MD5 hashing對你來說已經足夠了,所以除了你的數據之外,還要發送一個16字節的MD5指紋。谷歌會告訴你關於MD5如何陳舊,虛弱,過時等等的故事,至少SHA-1是必須的。這是真的,但在密碼學方面。你不是以安全爲目標,你只需要一個完整性檢查,對此MD5絕對沒問題,並且比其他任何東西都快。