1

我正在使用大约 100 个用户的封闭社区站点(基于 PHP),我们实现的功能之一是 ajax 喊话框,当用户登录时,它在站点首页上用作“聊天室”。开发人员团队正在使用私人 irc 服务器进行协作,并且在一个频道中,我们正在运行一个测验机器人。我们想出了一个想法,尝试制作一个通过我们的网站连接到 irc 的 Web 界面,以便我们网站的所有(非技术精通)用户都可以参与我们的 irc 测验。

现在,我不是 IRC 专家,但我研究了一些 PHP-IRC 教程,在我看来,为了连接到 IRC,PHP 需要保持一个开放的连接.. 这意味着我们需要做一个彗星式的把戏,让 PHP 脚本执行而不会超时。但是,这意味着如果用户离开页面或关闭选项卡,我们就会失去对该 php 执行的控制。如果发生这种情况,我们可能会想办法停止连接,但即便如此,如果用户导航回聊天室,他也必须重新连接到 irc。

我们想要实现的是一种让用户永久连接到 irc 服务器的方式,即使他们没有登录到站点。开发团队在我们的一台服务器上都有 shell 帐户,我们使用 screen 和 irssi 保持连接。我认为应该可以通过始终连接到 irc 的 shell 帐户将 php 脚本连接到 irc。由于我们的用户数量有限,为所有用户设置 shell 帐户不是问题,但我还没有找到缺失的链接 - 一个命令行 irc 客户端,它允许以某种方式访问​​ php。

有人有什么建议吗?

4

1 回答 1

1

一种选择是运行BNC,基本上是一个代理,它将保持与 IRC 服务器的连接,并且您的 PHP 脚本可以在需要时连接到它。您需要设置一种方法来识别用户与 BNC 软件的 PHP 会话、设置会话超时等,这一切都取决于您使用的特定软件及其可用选项。

或者,用 Python 编写一个特殊用途的代理或者维护 PHP 会话的 IRC 连接列表的东西并不难。

您也可能不希望每个 PHP 会话有一个 IRC 连接,IRC 通道上的单个持久 bot 连接可以轻松地在每条消息中包含一个用户名,标识发送它的 PHP 用户。

于 2010-08-13T04:20:43.793 回答