加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP服务器和websockets

发布时间:2020-12-13 17:18:24 所属栏目:PHP教程 来源:网络整理
导读:我想开始使用websockets建立到 PHP套接字服务器的连接.如果数据库中的某些内容发生了变化,该服务器应该以一定的间隔进行检查,然后它应该将更改发送回客户端.因此,当连接客户端时,只要客户端(本例中为webbrowser)在页面上,连接就应该保持打开状态. 然后服务器
我想开始使用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是一个允许您非常轻松地构建套接字服务器的库,并且可以更具可伸缩性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读