2013-05-12 271 views
1

我正在研究一個可與家庭自動化系統相媲美的想法。 網絡設備的佈局會是這樣的: enter image description hereTCP Holepunch實現

我想要的是我的手機應用程序能夠在任何時候都與家庭服務器進行通信,同時也爲服務器能夠達到我的電話(推送通知)。 爲此,我認爲在數據中心使用我的服務器作爲流量中心來實施TCP-Holepunching會是一個好主意。

問題是,由於我的Java技能還不夠好,我不得不使用PHP腳本語言編寫我的服務器,但PHP無法保持套接字的活動狀態。

是否有TCP-holepunching服務器軟件(在Debian中可執行)可用,它能夠保持套接字活動並將來自我的服務器的任何命令推向正確的目的地(即:電話),反之亦然?

+0

關於你的賞金:這是不可能提供一個工作的解決方案與少量的信息。有很多變量,例如「防火牆」是什麼意思?一個NAT?僅HTTP?您打算使用哪種類型的手機?看看XMPP協議,對於手機來說也許還有BOSH.Can't比這更具體,但。 – escitalopram 2013-05-18 22:13:27

+0

基本上,只要設備能夠建立到數據中心服務器的連接,基本上我應該能夠建立從哪裏連接的連接,該連接必須保持活動狀態才能通過 – xorinzor 2013-05-18 23:10:46

+0

進行通信I可能有錯誤的「工作答案」,但我的意思是某種代碼示例工作,而不是僅僅告訴我,如果您使用代碼A和庫B,您應該能夠創建產品C – xorinzor 2013-05-18 23:12:25

回答

1

有辦法讓套接字在PHP中工作。一個庫可以在這裏找到: http://socketo.me/

另外一個簡單的設置服務器的方法可以用NodeJS來完成。您使用JavaScript編寫服務器(在Google Chrome的V8引擎上運行),然後您可以基於事件處理持久連接。

只需幾行代碼就可以(使用NodeJS)對中繼服務器進行編碼(從手機中繼到家用PC,反之亦然)。

+0

我會做一些編碼,這應該工作:)謝謝! – xorinzor 2013-05-22 12:52:03

+1

我剛剛通過[The Node Beginner Book](http://www.nodebeginner.org/)的一半,這種用例似乎是它的用途。我正在成爲一名粉絲。 – Jason 2013-05-23 01:17:00

+1

這不是打孔,這只是一個代理/中繼。打孔的重點在於實際數據直接在防火牆設備之間進行。 – 2016-02-03 10:37:09