在php中进行基于网络的聊天,而无需使用数据库或文件

2022-08-30 23:02:25

我正在尝试使用PHP实现实时聊天应用程序。是否可以在不使用持久性数据存储(如数据库或文件)的情况下执行此操作。基本上,我需要的是一个用PHP编写的调解员

  1. 接受来自客户端浏览器的消息
  2. 将消息广播到其他客户端
  3. 忘记消息

答案 1

你应该看看html5的Web Sockets。它使用双向连接,因此您不需要任何数据库或文件。任何进入服务器的聊天消息都会直接发送到其他用户的浏览器,而无需任何Ajax调用。但是您还需要设置Web套接字服务器。

Web套接字也用于许多实时应用程序。我很快就计划为此编写完整的教程。我会通知你。


答案 2

只是尝试了一些我以前从未做过的事情来回答这个问题。似乎有效,但我只测试了一次。我没有使用套接字,而是想到使用共享的会话变量。基本上,我强制Session_id具有相同的值,而不管用户是谁,因此它们都共享相同的数据。从快速测试来看,它似乎有效。以下是我所做的:

session_id('12345');
session_start();
$session_id = session_id();
$_SESSION['test'] = $_SESSION['test'] + 1;
echo "session: {$session_id} test: {$_SESSION['test']} <br />";

所以我的思考过程是,你可以简单地将聊天信息存储在会话变量中,并强制每个人使用共享会话,无论他们是谁。然后,您只需使用 ajax 不断重新加载当前 Session 变量,并在添加消息时使用 ajax 编辑会话变量。此外,您可能希望将会话设置为永不过期或具有非常长的最大生存时间。

正如我所说,我只是玩了几分钟,看看它是否有效。


推荐