使用websockets以及PHP和MySQL脚本的最佳方法是什么


What is the best way to use websockets along with PHP and MySQL scripts?

使用websockets以及PHP和MySQL脚本的最佳方法是什么?

如果我想在我的PHP网站中添加实时聊天,或者在实时执行X操作时将vars存储到MySQL数据库(例如,对于RPG网站交易)。

我找到了瑞奇,这是有效实现这些事情的好选择吗?也许同时使用 Node.js 和 PHP?我不知道该怎么办。

几个月

前我也有同样的问题,经过一些修补和研究后,我自己回答了这个问题。

我使用Node.js与PHP结合使用。

基本上,它是这样工作的。Apache/php 根据请求向客户端发送页面。它包含一个身份验证令牌。浏览器初始化 socket.io 并将令牌发送回节点 js 服务器。然后,Node 将令牌发送到私有 API(如果您愿意)到 Apache 服务器,请求用户(例如用户 ID)所需的上下文。当节点将其取回时,它会将其存储在"connection ID" => "user ID"表中。(或路由表(哈希映射的特定术语))

如果用户向另一个用户发送"聊天"消息,它通过ajax转到Apache,执行数据库/处理工作,然后将其传递回后端的Node.js将用户ID插入路由表并将消息发送到用户浏览器。

无法发布代码,因为它可能会在某个时候用于生产,但这就是我使用基于 LAMP 的服务器的方式。

注意:您需要实现一个字符串帐户管理系统才能正常工作,并且我为自己的帐户处理系统实现了此概念,因此在我的情况下它非常特定于应用程序。

对令牌的需求是为了安全。例如,此令牌可以是会话 ID。可以在后端派生用户 ID,但不能在前端派生用户 ID。它应该定期更改。这样,如果它受到威胁,攻击者将无法长时间或根本无法连接到实时会话。

这个概念可以改进。例如,每个请求令牌,该令牌在每个请求上更改,只能使用一次。这是我目前正在使用实时通知系统进行的工作。