PHP服务器和websockets
我想开始使用websockets建立到
PHP套接字服务器的连接.如果数据库中的某些内容发生了变化,该服务器应该以一定的间隔进行检查,然后它应该将更改发送回客户端.因此,当连接客户端时,只要客户端(本例中为webbrowser)在页面上,连接就应该保持打开状态.
然后服务器应该以一定的间隔检查数据库并在需要时发回数据.我知道问题不在于websockets(除了并非所有主流浏览器都支持它).主要是我担心的是PHP.我想用PHP创建服务器,但是我可以保持连接打开PHP代码,只要我想要吗? 间隔怎么样.通常在C#.NET exe应用程序中,我只会创建一个计时器.怎么可以在PHP中完成? 如果这一切都可能,我可以简单地在Apache网络服务器中运行我的PHP代码吗? 解决方法
通常,如果您要在PHP中编写套接字服务器,则需要通过命令行运行它.您需要考虑的事项是:
您需要访问通常不在共享服务器上的套接字,因此您必须自己购买VPS. 您可能希望在服务器上设置一个文件,该文件会在每次重新启动服务器时自动启动PHP脚本.通常,这是通过在/etc/init.d中放置运行PHP脚本的shell脚本然后将符号链接放在/etc/rc5.d中的shell脚本(假设这是您的默认级别)来完成的. 您也很可能不希望/需要Apache运行,除非您还计划将此服务器用作文件服务器.如果您只将它用于套接字服务器,那么您应该安装PHP-CLI.这样可以节省你的记忆力. 如果您尝试在连接到服务器的用户之间进行实时交互,则可能根本不想涉及数据库.您的套接字服务器将包含连接到套接字服务器的所有订户的列表,因此当其中一个订阅者向您发送消息时,您可以立即将该消息发送回所有已连接的订阅者,而无需在慢速数据库中存储任何内容.或者,如果您负担得起,您可能希望将信息保存在内存中. 所有名为socket.io的浏览器都不支持套接字解决方案.基本上我相信它会尝试设置一个浏览器websocket,如果它支持,但如果它不受支持,它会启动一个Flash套接字连接.无论哪种方式,您使用相同的界面与它进行交互. 您还可能需要考虑另一种语言来创建套接字服务器. PHP并不是真的为这类东西而构建.使用的更好的语言是Javascript,特别是如果可扩展性是一个问题. Node.js是一个允许您非常轻松地构建套接字服务器的库,并且可以更具可伸缩性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |