【问题标题】:PHP and IRC and ShellsPHP、IRC 和 Shell
【发布时间】:2010-08-13 12:20:43
【问题描述】:

我正在使用一个大约有 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。

大家有什么建议吗?

【问题讨论】:

    标签: php irc


    【解决方案1】:

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

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

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

    【讨论】:

    • 我也在想同样的事情。一个 irc 机器人,用于向/从站点中继聊天,在每条消息前加上网络用户的用户名。我最近看了一点phergie.org“Phergie”,它看起来很有趣。在任何情况下,irc 都需要持续连接才能工作。
    猜你喜欢
    • 2011-05-12
    • 2012-03-19
    • 2012-10-04
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    相关资源
    最近更新 更多