Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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
使用PHP的服务器到客户端连接_Php_Jquery_Mysql_Ajax_Client Server - Fatal编程技术网

使用PHP的服务器到客户端连接

使用PHP的服务器到客户端连接,php,jquery,mysql,ajax,client-server,Php,Jquery,Mysql,Ajax,Client Server,所以我的问题是: 通过PHP建立服务器-客户机连接的最佳方式是什么? 我现在使用的第一种方法是使用AJAX。使用jQuery 具体来说: 我有一个大厅和一个游戏模式,我的首要任务是聊天和游戏中的用户 我现在正在做的是:我有一个PHP文件,为游戏中的每个用户更新数据库中的一条记录,还有一个文件定期检查。假设每5秒钟 问题是,有很多mysql调用,很多ajax调用,有时当ajax不能及时加载时,记录不会及时更新,因此->用户断开连接 请注意,我需要这篇论文,所以我有时间做我的家庭作业,即使你给我一些

所以我的问题是: 通过PHP建立服务器-客户机连接的最佳方式是什么? 我现在使用的第一种方法是使用AJAX。使用jQuery

具体来说: 我有一个大厅和一个游戏模式,我的首要任务是聊天和游戏中的用户

我现在正在做的是:我有一个PHP文件,为游戏中的每个用户更新数据库中的一条记录,还有一个文件定期检查。假设每5秒钟 问题是,有很多mysql调用,很多ajax调用,有时当ajax不能及时加载时,记录不会及时更新,因此->用户断开连接

请注意,我需要这篇论文,所以我有时间做我的家庭作业,即使你给我一些链接

欢迎提供任何答案和提示!
提前感谢。

您可以从设置AJAX调用的时间限制开始,并通过双重检查来处理任何错误,而不仅仅是断开用户连接

实际上,每五秒钟打一次电话并没有那么多。

你可以看看,它使用长轮询来保持连接打开,允许在没有轮询的情况下进行通信

问题是,这需要服务器上更多的资源,因为它可能必须同时保持大量连接处于打开状态。如果您在一个具有多台服务器的托管服务器上,管理状态可能会成为一个难题,因为您需要将用户固定到单个IP/服务器,或者跨服务器管理状态。您正在用一组资源交换另一组资源


这一点您可以考虑除了COMOTE是保持DB内存驻留或大大提高DB性能。

尝试使用彗星或反向Ajax < /P>


另一种方法是使用共享内存-。 一个潜在的问题可能是系统对共享内存的限制。此外,对共享资源的访问可能会变得复杂,因为您必须确保对任何共享资源进行保护,以防止同时读/写。但是,这应该比使用数据库更快。数据可以每分钟或半分钟刷新一次数据库,等等

如果游戏模式每秒需要大量的请求/响应,那么创建一个单独的程序来处理游戏逻辑将是一个更好的解决方案,而不是使用PHP。
如果可能的话,另一个选项是使游戏有状态。

好的,所以我使用Ajax检查游戏内的用户,也可以聊天,以及在大厅和游戏结束后发生的任何事件。有很多用户同时在不同的游戏和大厅里,还是不会太多?