Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在免费的cPanel主机上运行PHP聊天程序?_Php_Sockets_Client Server_Chat_Shared Hosting - Fatal编程技术网

如何在免费的cPanel主机上运行PHP聊天程序?

如何在免费的cPanel主机上运行PHP聊天程序?,php,sockets,client-server,chat,shared-hosting,Php,Sockets,Client Server,Chat,Shared Hosting,我已经用PHP创建了一个客户机-服务器聊天应用程序。它使用套接字编程进行通信。使用终端在我的软呢帽上运行良好。但我需要在服务器上主持聊天。但我没有任何服务器,所以我使用免费的托管站点(带有cPanel) 有没有办法在免费的web服务器上运行socket编程的聊天服务器而不访问其终端?大多数免费主机不允许使用socket、curl等php模块 当你想通过http获取某个url时,他们中的许多人禁止使用诸如file_get_contents和fopen之类的函数——实际上它仍然在使用套接字 另外,如

我已经用PHP创建了一个客户机-服务器聊天应用程序。它使用套接字编程进行通信。使用终端在我的软呢帽上运行良好。但我需要在服务器上主持聊天。但我没有任何服务器,所以我使用免费的托管站点(带有cPanel)


有没有办法在免费的web服务器上运行socket编程的聊天服务器而不访问其终端?

大多数免费主机不允许使用socket、curl等php模块

当你想通过http获取某个url时,他们中的许多人禁止使用诸如file_get_contents和fopen之类的函数——实际上它仍然在使用套接字

另外,如果我们谈论聊天服务器,您需要监听某些特定端口上的连接,自定义入站连接更可能被禁止

这种安全特性的一个原因是不允许人们利用免费的托管网络资源,设置不同的刮板、垃圾邮件海报等


最好给自己买一些便宜的VP,因为即使是付费的虚拟主机计划也常常受限于上述相同的规则。

如果您无法访问任何外部服务器资源,您可以使用轮询技术。如果无法通过WebSocket或使用flash进行连接,Socket.IO的功能可以回退到使用XMLHttpRequest轮询

例如,在客户端上,可以设置以下选项:

io.set('polling duration', 5);
这将导致Socket.IO在内部每5秒执行一次AJAX请求。在服务器端,您将需要使用以下内容。不幸的是,如果不推出自己的服务器端解决方案,似乎没有很多替代方案


因为PHP脚本不会一直在后端运行,所以需要设计一些机制来跟踪用户状态。这可能相当复杂,但如果您只是出于学习目的而这样做,则可以将其存储在数据库或客户端的用户会话中。每当从客户端发出请求时,您都会查询数据库以检索用户会话,然后使用Socket.IO方法从那里开始。

我刚刚创建了本地计算机,一个通过端口转发调制解调器的服务器,并结合了动态dns技术来跟踪用户的IP地址,最后,在用户之间创建点对点连接以启用聊天


问题解决了,没有使用免费的托管网站

脚本是如何监听的?它是否在后台持续运行?如果是这样,就不太可能允许它在空闲主机上运行。我不确定它们是否会允许任意套接字侦听器,因为侦听器将占用每个IP的整个端口。我想你可能需要一个VPS(虽然细节有限,很难说)。可以从免费主机服务器向我的电脑发送TCP/UDP消息吗?他们允许在Http请求上发送这样的数据包吗?你会在你的问题中编辑你用来这样做的代码吗?我只是在自我研究这些东西。我会为此编写一个新代码。:)你知道我可以用什么方法从免费主机服务器向本地主机(例如:我的本地pc)发送加密消息吗?这取决于主机,但一般来说答案是否定的。正如Antony所说,获得一个便宜的VPS-这样就省去了绕过这些限制的麻烦。有可能从免费主机服务器向我的pc发送TCP/UDP消息吗?他们允许在Http请求上发送这样的数据包吗?这是可行的,但您的家庭带宽有限,延迟也不会很大。此外,家庭计算机的停机时间通常比机架式服务器的停机时间要长,即使您打算让它们保持24/7。您的回答是对的。但是,它对我的测试和私人交流很有效。