2013-04-10 191 views
3

我們希望通過Windows Azure Cloud Service實現端口,並希望對我們的策略提供一些反饋。在Windows Azure中實現TCP/UDP端口

我們目前的項目:

  • 物理GPS單元運行作爲客戶
  • Windows Azure雲服務作爲服務器運行。

1)物理GPS單元: 我們使用XT-4000 [Xirgo技術]物理GPS單元這是一種強大的跟蹤,監視和控制網關device.This裝置需要UDP或TCP端口進行通信。

2)Windows Azure雲服務: 這裏我們需要打開一個TCP或UDP端口,並在那裏有一個監聽器,並監聽由設備[XT-4000]推送的傳入數據。

下面是我們認爲我們的策略應該是什麼。所有的建議表示讚賞。

  • 在Azure上創建TCP端口。
  • 設置用於接收來自設備的輸入信號的監聽器。

[但問題是,我們可以在Windows Azure雲服務創建TCP端口爲一個基於雲的平臺,如果是,那麼如何?]

另外兩個問題:

  • 由於設備支持UDP或TCP端口進行通信,哪一個更好?

  • 爲了接收設備間的信號,我們需要任何第三方幫助嗎?

回答

3

您需要使用Windows Azure Cloud Service而不是Windows Azure Web Site

對於雲服務,您將需要使用工作者角色來實現設備支持的協議。你可以使用TCP或UDP--無論你更習慣於編程。您將不得不爲define an input endpoints爲您的雲服務。

至於其他問題:

As the device supports both UDP or TCP port to communicate, which one is better? 

取決於該設備所支持的協議。我見過很多GPS設備使用的協議。從「只需發送和忘記」到「非常可靠的錯誤檢查並接收確認」。如果你的設備的協議類型爲「只發送和忘記」,TCP可能更好,因爲它更可靠。如果設備的協議容易出錯,並進行驗證/ CRC-檢查/接收確認,那麼您可以使用UDP。

對於從設備接收信號端口我們需要任何第三方 的幫助嗎?

這取決於你的編程技巧...

+0

感謝您的指導方針astaykov。 – 2013-04-10 09:38:49

+0

@astaykov我不明白爲什麼一個「只發送和忘記」應該使用TCP,這基本上是一個UDP協議的定義。難道不是相反嗎? – Crypth 2013-12-17 06:39:16

+0

@Crypth你爲什麼問我?詢問製造這些設備的人!但無論如何,我對這樣的實現感到非常滿意。很長一段時間,Azure不支持UDP,我很高興地通過TCP運行「火災和遺忘」類型的設備。我不知道在不知道GPS設備市場的情況下,評論一個8個月的帖子背後的驅動程序是什麼(顯然)! – astaykov 2013-12-17 07:19:21

3

我們已經實施了類似的服務(車輛跟蹤),在Windows Azure上運行成功。一些觀察:

  • 按astakov的回答,你現在看到的是雲服務(工作者角色)
  • Azure的同時支持TCP和UDP,但如果你有一個選擇,去TCP。 UDP沒有連接,設備無法知道您的服務是否已收到數據。我們被迫使用UDP並且必須向設備發送確認數據,否則它會被重新發送(我們實際上必須通過UDP編寫我們自己的協議)。移動網絡防火牆規則(和其他網絡配置)可能會阻止從服務器向設備發送UDP數據包。儘可能地對抗UDP - UDP的有損性質完全不適用於車輛跟蹤。
  • 檢查設備是否支持DNS。這些設備中的很多隻會發送到IP地址,這使得部署更有趣。
  • 這些設備需要最小化傳輸的數據(由於GSM數據成本),並且通常以專有和壓縮格式發送數據。你的大部分工作將花費在分解二進制數據上。如果可以,找到一個供應商,該供應商有一個庫,可以使用服務器端解碼數據。我個人的情況(對於一個定製的設計和建造的設備),花了大約10個月的時間纔開始正確解碼數據。
+0

如果設備不支持DNS,我不會說以任何方式進行部署。 Windows Azure保證只要有部署,IP地址就不會更改,而且您不會刪除**。關於設備是否支持DNS,您在部署雲服務方面完全沒有區別。現在,所有類型的就地升級都得到支持。 – astaykov 2013-04-10 12:31:38