5

我正在尝试使用 websockets 和 Symfony 2 创建一个聊天应用程序。给定聊天室的传入消息应存储在 MySQL 数据库中,而传出消息应发送给该聊天室的所有注册者。我正在考虑在后端使用这样的东西(使用 Symfony 2) https://github.com/GulDmitry/php-websocket-server

这对于前端 http://socket.io/

我认为所有用户都应该添加到某种全局服务器数据结构中,该结构指定更新聊天室时向谁发送消息。在 PHP 中可以实现这样的结构吗?似乎不会,所以我不确定解决这个问题的最佳方法是什么。

4

1 回答 1

5

是的。“服务器”通常是一个永远运行的 php 进程。您不希望它通过您的网络服务器运行,因此您可以从命令行启动套接字服务器并让它运行。使用这种结构,您可以只使用一个数组来存储所有用户。

最终,您可能希望运行多个实例。您可以让多个脚本通过内存、文件、数据库或其他形式的 IPC 进行通信。因此,该结构可以在任何单个套接字服务器进程之外维护。但是,这些是超出您问题范围的复杂情况。

于 2012-05-15T22:25:35.333 回答