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

时间:2013-11-26 16:40:24

标签: php sockets client-server chat shared-hosting

我在PHP中创建了一个客户端服务器聊天应用程序。它使用套接字编程进行通信。它在我的Fedora使用终端上工作正常。但我需要在服务器中主持聊天。但我没有任何服务器,所以我使用免费托管网站(使用cPanel)。

有没有办法在免费的Web服务器上运行套接字编程的聊天服务器而无法访问其终端?

3 个答案:

答案 0 :(得分:2)

大多数免费主机不允许使用像socket,curl这样的php模块。

当你想通过http获取一些网址时,其中许多人禁止使用像file_get_contents和fopen这样的函数 - 实际上它仍在使用套接字。

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

此类安全功能的一个原因是不允许人们使用免费托管网络资源,设置不同的抓取工具,垃圾邮件海报等。

最好让自己获得一些便宜的VPS,因为即使付费的虚拟主机方案通常也会受到与上述规则相同的限制。

答案 1 :(得分:1)

如果您无权访问任何外部服务器资源,则可以使用轮询技术。如果没有通过websockets或使用flash的连接方法,Socket.IO可以回退使用XMLHttpRequest轮询。

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

io.set('polling duration', 5);

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

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

答案 2 :(得分:0)

我刚刚制作了我的本地机器,服务器通过端口转发调制解调器并采用dynamic-dns技术跟进用户的IP地址,最后在用户之间创建了点对点连接以启用聊天。

问题在没有使用免费托管网站的情况下解决了!!!