Php TCP Holepunch实现

Php TCP Holepunch实现,php,networking,hole-punching,Php,Networking,Hole Punching,我正在研究我的一个想法,它可以与家庭自动化系统相媲美。 网络设备的布局如下所示: 我想要的是,我的手机应用程序能够随时与家庭服务器通信,而且服务器能够访问我的手机(推送通知)。 为此,我认为使用数据中心中的服务器作为流量中心来实现TCP Holepunching是一个好主意 但问题是,由于我的Java技能还不够好,我不得不用PHP脚本语言编写服务器,但PHP无法保持套接字的活动状态 是否有可用的TCP holepunching服务器软件(可在Debian中执行),该软件能够使套接字保持活动状态

我正在研究我的一个想法,它可以与家庭自动化系统相媲美。 网络设备的布局如下所示:

我想要的是,我的手机应用程序能够随时与家庭服务器通信,而且服务器能够访问我的手机(推送通知)。 为此,我认为使用数据中心中的服务器作为流量中心来实现TCP Holepunching是一个好主意

但问题是,由于我的Java技能还不够好,我不得不用PHP脚本语言编写服务器,但PHP无法保持套接字的活动状态


是否有可用的TCP holepunching服务器软件(可在Debian中执行),该软件能够使套接字保持活动状态,并将任何命令从我的服务器推送到正确的目标(即:电话),反之亦然?

有一些方法可以使套接字在PHP中工作。可以在此处找到一个执行此操作的库:

另外,一种简单的设置服务器的方法也可以通过。您可以用JavaScript编写服务器代码(在Google Chrome的V8引擎上运行),然后可以根据事件处理持久连接


(使用NodeJS)只需几行代码就可以编写中继服务器(从您的手机中继到您的家用PC,反之亦然)。

有一些方法可以让套接字在PHP中工作。可以在此处找到一个执行此操作的库:

另外,一种简单的设置服务器的方法也可以通过。您可以用JavaScript编写服务器代码(在Google Chrome的V8引擎上运行),然后可以根据事件处理持久连接


(使用NodeJS)只需几行代码就可以对中继服务器(从手机中继到家用电脑,反之亦然)进行编码。

关于您的赏金:不可能用这么少的信息提供有效的解决方案。有很多变量,例如,你所说的“防火墙”是什么意思?纳特?仅HTTP?您打算使用哪种类型的手机?看一看XMPP协议,因为手机可能也会胡说八道。不过,再具体不过了。基本上,只要设备能够建立到数据中心服务器的连接,我应该能够在任何地方建立连接,这种联系必须保持活跃,以便能够进行沟通。我可能错误地指定了“工作答案”,但我的意思是某种代码示例,而不是仅仅告诉我,如果您使用代码A和库B,您应该能够创建产品C您使用的是哪种手机?大多数现代手机已经有推送通知功能…Android 4.2,它们支持推送通知,但在某些情况下,我的服务器将无法访问它(例如在NAT或防火墙后面),这与您的赏金有关:不可能提供一个包含这么少信息的工作解决方案。有很多变量,例如,你所说的“防火墙”是什么意思?纳特?仅HTTP?您打算使用哪种类型的手机?看一看XMPP协议,因为手机可能也会胡说八道。不过,再具体不过了。基本上,只要设备能够建立到数据中心服务器的连接,我应该能够在任何地方建立连接,这种联系必须保持活跃,以便能够进行沟通。我可能错误地指定了“工作答案”,但我的意思是某种代码示例,而不是仅仅告诉我,如果您使用代码A和库B,您应该能够创建产品C您使用的是哪种手机?大多数现代手机已经有推送通知功能…Android 4.2,它们支持推送通知功能,但在某些情况下,我的服务器将无法访问推送通知功能(例如NAT或防火墙后)。我已经完成了一半,这种用例似乎就是它的用途。我要成为一个粉丝了。这不是打孔,这只是一个代理/中继。打孔的意义在于,实际数据直接在防火墙设备之间传输。我已经完成了一半,这种用例似乎就是它的用途。我要成为一个粉丝了。这不是打孔,这只是一个代理/中继。打孔的要点是实际数据直接在防火墙设备之间传输。